Оконные крючки - как они работают? - PullRequest
9 голосов
/ 26 декабря 2011

Я понятия не имею, как работают оконные хуки на «системном уровне». MSDN очень кратко описывает происходящее:

Хук - это точка в механизме обработки системных сообщений, где Приложение может установить подпрограмму для мониторинга трафика сообщений в система и обрабатывать определенные типы сообщений, прежде чем они достигнут процедура целевого окна.

Мое лучшее предположение примерно такое:

enter image description here

Прежде чем каждое сообщение будет добавлено в очередь сообщений для окна, оно сначала отправит сообщение в глобальные / локальные перехватчики, которые могут что-то делать, в зависимости от процедур перехвата. После всех глобальных и локальных перехватов сообщение наконец добавляется в очередь сообщений окна.

Однако MSDN сообщает, что для некоторых типов хуков он будет контролировать events, notifications и т. Д.

Примером является WH_MOUSE_LL hook:

Устанавливает процедуру ловушки, которая контролирует низкоуровневую мышь входные события . Для получения дополнительной информации см. Хук LowLevelMouseProc. процедура.

Когда они говорят events, мы говорим о сообщениях окна или они имеют в виду что-то еще?

Я все не так?

1 Ответ

1 голос
/ 26 декабря 2011

Да, это механизм для сообщений Windows, вы можете обработать эти данные (сообщения), прежде чем они достигнут целевой оконной процедуры (цикл сообщений).

Если вы хотите подключить другие окна процесса, вы можете просто сделать этов DLL, и используйте инъекцию DLL для внедрения вашей библиотеки в другой процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...