Название: Доступ в стороннее QT приложение Отправлено: Cool Smile от Декабрь 22, 2009, 09:52 Есть у меня сторонее приложение, видимо написанное в QT (во всяком случае в качестве базового класса выдается QWidget). И есть на нем элемент, я подозреваю textBrowser.
Вопрос - могу я из своей программы получить доступ (считать текст) из этого элемента? По сути, все, что у меня есть это хеадер окна. Название: Re: Доступ в стороннее QT приложение Отправлено: Пантер от Декабрь 22, 2009, 12:34 Вряд ли.
Название: Re: Доступ в стороннее QT приложение Отправлено: Cool Smile от Декабрь 22, 2009, 13:36 А можно поподробнее почему? С типовыми виндоусовскими компонентами а-ля StringList и RichEdit особых проблем не возникает, неужели у QT приложения принципиально нельзя запросить хеадер компонента и пообщаться с ним напрямую? :(
Название: Re: Доступ в стороннее QT приложение Отправлено: Пантер от Декабрь 22, 2009, 17:43 Qt все контролы в окне сама отрисовывает. Думаю, дальше все понятно.
Название: Re: Доступ в стороннее QT приложение Отправлено: Igors от Декабрь 22, 2009, 17:54 Qt все контролы в окне сама отрисовывает. Думаю, дальше все понятно. Хммм... а что собственно понятно? :) По-моему дело такое - есть 2 процесса, стало быть у них разные адресные пространства. И непонятно как данные из одного могут быть переданы в другое. Для этого нужно или работать через дескрипторы или shared memory - словом нужна какая-то специальная поддержка, а ее не видно.А вообще мне нравится вопрос любознательного молодого человека :) Название: Re: Доступ в стороннее QT приложение Отправлено: Пантер от Декабрь 22, 2009, 18:13 Понятно то, что до Кьютового контрола, в отличии от стандартного виндового, нельзя достучаться через винапи.
Название: Re: Доступ в стороннее QT приложение Отправлено: Igors от Декабрь 22, 2009, 19:46 Понятно то, что до Кьютового контрола, в отличии от стандартного виндового, нельзя достучаться через винапи. Ну до окон-то можно, да толку все равно немного. Структур данных не получить Название: Re: Доступ в стороннее QT приложение Отправлено: Cool Smile от Декабрь 23, 2009, 00:09 Поскольку я новичёк, имею право играть блондинку :) - почему нельзя получить структур данных? Насколько я понял по публикациям идею, QT приложение крутит свою очередь событий, принимая всё родительским окном. Но может алгоритм распределения запросов открытый (все ж кроссплатформенная идея :) ) и притворяясь "папой" можно попросить отдать содержимое чайлд контрола?
>> А вообще мне нравится вопрос любознательного молодого человека А давайте обозначим, что "любознательный молодой человек" заинтересован в решении этой задачи? :) Название: Re: Доступ в стороннее QT приложение Отправлено: Dendy от Декабрь 23, 2009, 01:41 Для начала узнайте точную версию Qt, с которой была собрана программа. Достаньте исходники Qt этой версии. Подключитесь к программе отладчиком и в ассемблерном коде, руководствуясь заголовочниками ищите данные. А если программа собрана с дебажными символами - так вообще песня.
Название: Re: Доступ в стороннее QT приложение Отправлено: break от Декабрь 23, 2009, 02:23 В старом QtSolutions был такой класс ObjectInspector - я сам не пользовался им но вроде можно было просматривать дерево всех QObject-ов программы со свойствами и дочерними QObject-ами - можно покапать и в эту сторону тоже...
http://qt.nokia.com/products/appdev/add-on-products/catalog/3/Tools/qtobjectinspector/ На самом деле очень хороший солюшен вот бы его на Qt4 тоже перенесли - просьба в баг трекере - что-то никто не голосует... http://bugreports.qt.nokia.com/browse/QTSOLBUG-57 Название: Re: Доступ в стороннее QT приложение Отправлено: Igors от Декабрь 23, 2009, 17:53 Поскольку я новичёк, имею право играть блондинку :) - почему нельзя получить структур данных? Насколько я понял по публикациям идею, QT приложение крутит свою очередь событий, принимая всё родительским окном. Но может алгоритм распределения запросов открытый (все ж кроссплатформенная идея :) ) и притворяясь "папой" можно попросить отдать содержимое чайлд контрола? Ну допустим (хотя я не вижу как) можем как-то управлять контролом, и что с того? Откуда мы знаем в каком окне какой контрол, что он делает и.т.п.? Пробежать по всем QTextEdit и вставить в каждый неприличное слово - вот максимум после долгих усилий. Стоит ли тратить время на примитивные пакости? :)Название: Re: Доступ в стороннее QT приложение Отправлено: denka от Декабрь 23, 2009, 23:12 Ну допустим (хотя я не вижу как) можем как-то управлять контролом, и что с того? Откуда мы знаем в каком окне какой контрол, что он делает и.т.п.? Пробежать по всем QTextEdit и вставить в каждый неприличное слово - вот максимум после долгих усилий. Стоит ли тратить время на примитивные пакости? :) На самом деле это не примитивные пакости. Есть очень не плохая система, написанная на Qt, для создания GUI тестов для Qt приложений, которая использует данный подход. Название: Re: Доступ в стороннее QT приложение Отправлено: lit-uriy от Декабрь 24, 2009, 01:03 А вот эта штука не подойдёт - QSpy (http://www.qt-apps.org/content/show.php/QSpy?content=102287)?
П.С. сам не пользовался Название: Re: Доступ в стороннее QT приложение Отправлено: break от Декабрь 24, 2009, 04:08 Цитировать А вот эта штука не подойдёт - QSpy? Посмотрел какой-то фейк треш не рабочий... к сожалению, уж подкмал как круто было бы - натравил на запущенную Qt программу и отлаживай..В общем у меня не заработало и беглый взгляд на исходники подталкивает на мысль что скрин на странице QtApps это фотошоп из дизайнера -- короче фейк толкает кто-то... И видео корявое сбацал только чтобы свой фейк подтвердить - ненавижу таких уродов моральных... Название: Re: Доступ в стороннее QT приложение Отправлено: Rcus от Декабрь 24, 2009, 05:01 Цитировать А вот эта штука не подойдёт - QSpy? Посмотрел какой-то фейк треш не рабочий... к сожалению, уж подкмал как круто было бы - натравил на запущенную Qt программу и отлаживай..В общем у меня не заработало и беглый взгляд на исходники подталкивает на мысль что скрин на странице QtApps это фотошоп из дизайнера -- короче фейк толкает кто-то... И видео корявое сбацал только чтобы свой фейк подтвердить - ненавижу таких уродов моральных... Название: Re: Доступ в стороннее QT приложение Отправлено: break от Декабрь 24, 2009, 05:48 Цитировать Хм... а у меня работает, но в описании указано прямо что работает только для Linux (хотя поверхностное изучение исходников показало что работать будет только при динамической линковке при поддержке LD_PRELOAD). Работает в смысле выводит свойства Qt шной программы любой? - или в смысле просто запускается? у меня то она тоже запускается - но никаких свойств не видать - естественно в линукс пробовал... Название: Re: Доступ в стороннее QT приложение Отправлено: Rcus от Декабрь 24, 2009, 06:26 Работает в смысле выводит свойства Qt шной программы любой? - или в смысле просто запускается? у меня то она тоже запускается - но никаких свойств не видать - естественно в линукс пробовал... Не знаю насчет любой, но я запускал KDE/Qt приложения и все работало. |