Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Узнать когда отрисовались контролы на чужой форме


Автор: FR2elancER 9.1.2008, 21:47
Есть приложение, котрое запускается из моего приложения. Оно некоторое время выполняется и во время выполнения прорисовываются контролы. Как контролы прорисуются с них надо считать информацию. Как узнать когда контролы закончат прорисовку? В цикле считывать информацию с них не эффективно, это грузит систему. Делать глобльный хук на какоето событие? Читал, что глобальные хуки тоже тормозят систему. Помогите пожалуйста советом.

Автор: dumb 10.1.2008, 01:38
попробуй использовать http://msdn2.microsoft.com/en-us/library/ms687022.aspx

Автор: BorisVorontsov 10.1.2008, 13:55
dumb, читать вопросы по диагонали вредно...

Цитата(FR2elancER @  9.1.2008,  21:47 Найти цитируемый пост)
Оно некоторое время выполняется


Автору могу предложить инжектировать в приложение библиотеку, и из неё сабкласить требуемые элементы управления.

Автор: dumb 10.1.2008, 17:03
Цитата(BorisVorontsov @  10.1.2008,  13:55 Найти цитируемый пост)
читать вопросы по диагонали вредно
чтение по диагонали тут не при чем. под "некоторое время выполняется" вполне может пониматься, например, длительная инициализация.

Цитата(BorisVorontsov @  10.1.2008,  13:55 Найти цитируемый пост)
могу предложить инжектировать в приложение библиотеку
это один из "универсальных" ответов, но, во-первых - не отличающийся легкостью в реализации(с точки зрения задающего вопрос), а во-вторых - на разного рода "внедрения" нервно реагирует некоторое защитное ПО.
исходя из принципа "от простого - к сложному" и был выдан совет.

возможно, здесь вполне достаточным будет считывание по таймеру(а не "в цикле").

Автор: FR2elancER 20.1.2008, 13:50
Использовать WaitForInputIdle пробовал, не подходит по определению (процесс не ждет ввода пользователя).  Можно поподробнее насчет  
Цитата
сабкласить требуемые элементы управления.



Автор: BorisVorontsov 20.1.2008, 14:01
SetWindowLong GWL_WNDPROC/SetClassLong GCL_WNDPROC
Подробнее в MSDN.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)