| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Перехват всех оконных собщений процесса |
| Автор: bass 27.6.2015, 21:43 |
| Доброго времени суток. Вопрос такой, хочу прехватывать все оконные сообщения процесса. В процесе присудствуют окна не прорисованные, созданные для посылки специфических сообщений. Давно пробовал сделать с помощью хуков не чем хорошим не закончилось. Сейчас приходит мысль перехватывать WinApi функцию GetMessage. Есть у кого другие идеи, за ранее спасибо. |
| Автор: GremlinProg 28.6.2015, 07:41 |
| А какие были проблемы при установке хука? |
| Автор: bass 28.6.2015, 14:44 | ||
Не все сообщения перехватывались, либо не все окна. Давновато было, но помню что не получилась у меня данная процедура. |
| Автор: GremlinProg 28.6.2015, 15:57 | ||
Это может быть например для хука WH_GETMESSAGE, при посылке SendMessage. В таком случае, сообщение передается в процедуру окна непосредственно, минуя очередь сообщений. Если поставить хук WH_CALLWNDPROC, таких проблем быть не должно, конечно, если только процедура окна не была вызвана прямым кодом, типа:
думаю, хук WH_CALLWNDPROC зашит в вызове CallWindowProc |
| Автор: bass 29.6.2015, 11:19 | ||||
Спасибо попробую. Процедура точно на прямую не вызываеться - 100 %... Не буду обьяснять почему так уверен... Но кажеться хук WH_CALLWNDPROC ставил. Может быть из-за того что сообщения приходящие в окно не зарегистрированы в системе ???. Нужно перехватывать сообщения приходящие во все окна процесса. |
| Автор: bass 2.7.2015, 14:12 | ||
| Не выходит каменный цветок. Создаю приложение, создаю поток. В нем создаю окно в программе 1 ... Ставлю перехвадчик с помощью перелистывания всех окон(из программы 2). Хук ставиться только на главное окно программы1. Собщение во второе окно точно доходит, програамма сигнализирует об этом . Хук в длл. В чем проблема пока не пойму.
|