Здравствуйте, гость ( Вход | Регистрация )
DmP | Дата 6.2.2009, 1:36 |
А это случаем не интерфейс для создания приложений для людей с ограниченными способностями? Я тоже так думал, но не все так просто. Например, тут дается понять, что через эту технологию можно получить доступ к другому приложению, верней к элементам из которых состоит окно. Кстати, то нибудь может подсказать, как определить тип виджета, например полученного методом? QObject::objectName() или QObject::metaObject()->className() |
|
alexus_ru | Дата 6.2.2009, 1:14 |
Вообще то интерфейс. Не совсем уверен, что это можно как то применить. Кстати, то нибудь может подсказать, как определить тип виджета, например полученного методом?
Узнать - кнопка это или QLineEdit например |
|
SABROG | Дата 6.2.2009, 0:44 |
Есть еще вариант Accessibility, возможно это то что нужно. А это случаем не интерфейс для создания приложений для людей с ограниченными способностями? |
|
DmP | Дата 5.2.2009, 23:24 |
Есть еще вариант Accessibility, возможно это то что нужно. | |
DmP | Дата 5.2.2009, 16:11 |
Погугли на тему "внедрение в чужой процесс". Потом обычно в каждой программе QApplication расположен в стеке, когда окажешься в том же процессе, что и нужная программа пройдись по стеку и попробуй найти виртуальную таблицу QApplication, ну это как вариант. Сам такого не делал, точно сказать не могу. |
|
alexus_ru | Дата 5.2.2009, 15:37 |
Это к Qt не имеет ни какого отношения. Не мог бы подсказать, как это можно сделать? |
|
DmP | Дата 5.2.2009, 14:46 |
С техникой QT у меня пока не очень ( Это к Qt не имеет ни какого отношения. |
|
alexus_ru | Дата 5.2.2009, 13:28 |
Цитата Скорее всего так и есть, на демо-ролике показана, что программу запускает сам Squish, потом он по видимому запускает свой поток в загруженном приложении, определяет версию Qt, потом находит QCoreApplication::self - думаю найти эту переменную в памяти не так сложно, так как она потомок QObject. А все остальное дело техники. С техникой QT у меня пока не очень ( Подскажи, пожалуйста, что необходимо изучить, чтобы знать как "запустить свой поток в загруженном приложении", "найти QCoreApplication::self в памяти" я не имею никаких догадок на этот счет. |
|
DmP | Дата 5.2.2009, 8:18 |
Просто догадка. Возможно программа находит указатель qApp (QApplication), а уже через него получает все остальное: QApplication::allWidgets () Скорее всего так и есть, на демо-ролике показана, что программу запускает сам Squish, потом он по видимому запускает свой поток в загруженном приложении, определяет версию Qt, потом находит QCoreApplication::self - думаю найти эту переменную в памяти не так сложно, так как она потомок QObject. А все остальное дело техники. |
|
SABROG | Дата 5.2.2009, 1:24 |
Просто догадка. Возможно программа находит указатель qApp (QApplication), а уже через него получает все остальное: QApplication::allWidgets () Вторая догадка состоит в том, что программа вешает хуки на основные функции библиотеки Qt. В результате когда программа обращается к функциям Qt на самом деле проходит через прослойку. Ну или используется какой-нибудь механизм иньекции, что позволяет обращаться к методам Qt от имени самой программы. |
|
Просмотр темы полностью (откроется в новом окне) | |
![]() |
Текстовая версия | Сейчас: 23.3.2023, 21:50 |