Поделиться через


Крючки

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

В этом разделе

Имя Описание
Обзор перехватчика Описывает, как следует использовать крючки.
использование крючков Демонстрирует, как выполнять задачи, связанные с перехватчиками.
Справочник крючка Содержит ссылку на API.

Функции перехватчика

Имя Описание
CallMsgFilter Передает указанное сообщение и код перехватчика процедурам перехватчика, связанным с процедурами WH_SYSMSGFILTER и WH_MSGFILTER перехватчика.
CallNextHookEx Передает сведения об перехватчике в следующую процедуру перехватчика в текущей цепочке крюков. Процедура перехватчика может вызывать эту функцию до или после обработки сведений об перехватчике.
CallWndProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию перед вызовом процедуры окна для обработки сообщения, отправленного в поток.
CallWndRetProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию после вызова функции SendMessage. Процедура перехватчика может проверить сообщение; он не может изменить его.
CBTProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию перед активацией, созданием, уничтожением, минимизацией, максимизированием, перемещением или изменением размера окна; перед выполнением системной команды; перед удалением события мыши или клавиатуры из очереди системных сообщений; перед настройкой фокуса клавиатуры; или перед синхронизацией с системной очередью сообщений. Приложение для обучения на основе компьютеров (CBT) использует эту процедуру перехватчика для получения полезных уведомлений из системы.
DebugProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию перед вызовом процедур перехватчика, связанных с любым типом перехватчика. Система передает сведения о вызываемом перехватчике в процедуру перехватчика DebugProc, которая проверяет информацию и определяет, следует ли вызывать перехватчик.
ForegroundIdleProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию всякий раз, когда поток переднего плана будет неактивен.
GetMsgProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию всякий раз, когда функция GetMessage или PeekMessage извлекла сообщение из очереди сообщений приложения. Перед возвращением полученного сообщения вызывающей системе передается сообщение в процедуру перехватчика.
JournalPlaybackProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Как правило, приложение использует эту функцию для воспроизведения ряда сообщений мыши и клавиатуры, записанных ранее процедурой перехватчика JournalRecordProc. Если установлена процедура JournalPlaybackProc крючок, обычные входные данные мыши и клавиатуры отключены.
JournalRecordProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Функция записывает сообщения, которые система удаляет из очереди системных сообщений. Позже приложение может использовать процедуру перехватчика JournalPlaybackProc для воспроизведения сообщений.
KeyboardProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию всякий раз, когда приложение вызывает GetMessage или функцию PeekMessage и есть клавиатурное сообщение (WM_KEYUP или WM_KEYDOWN) для обработки.
LowLevelKeyboardProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию каждый раз, когда новое событие ввода клавиатуры будет отправляться в очередь ввода потока.
LowLevelMouseProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию каждый раз, когда новое событие ввода мыши будет отправляться в очередь ввода потока.
MessageProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию после того, как входное событие возникает в диалоговом окне, окне сообщения, меню или полосе прокрутки, но перед обработкой сообщения, созданного событием ввода. Процедура перехватчика может отслеживать сообщения для диалогового окна, поля сообщения, меню или полосы прокрутки, созданной определенным приложением или всеми приложениями.
MouseProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию всякий раз, когда приложение вызывает GetMessage или функцию PeekMessage и есть сообщение мыши для обработки.
SetWindowsHookEx Устанавливает процедуру перехватчика, определяемую приложением, в цепочку перехватчиков. Вы установите процедуру перехватчика для мониторинга системы для определенных типов событий. Эти события связаны либо с определенным потоком, либо со всеми потоками в одном рабочем столе с вызывающим потоком.
ShellProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Функция получает уведомления о событиях оболочки из системы.
SysMsgProc Определяемая приложением или библиотека функция обратного вызова, используемая с функцией SetWindowsHookEx. Система вызывает эту функцию после того, как входное событие возникает в диалоговом окне, окне сообщения, меню или полосе прокрутки, но перед обработкой сообщения, созданного событием ввода. Функция может отслеживать сообщения для любого диалогового окна, поля сообщения, меню или полосы прокрутки в системе.
UnhookWindowsHookEx Удаляет процедуру перехватчика, установленную в цепочке перехватчиков функцией SetWindowsHookEx.

Уведомления об перехвате

Имя Описание
WM_CANCELJOURNAL Опубликовано в приложении, когда пользователь отменяет действия журнала приложения. Сообщение публикуется с дескриптором NULL окна.
WM_QUEUESYNC Отправляется приложением CBT, чтобы разделить сообщения, введенные пользователем, от других сообщений, отправленных через процедуру WH_JOURNALPLAYBACK.

Структуры перехватчика

Имя Описание
CBT_CREATEWND Содержит сведения, передаваемые в процедуру перехватчика WH_CBT, CBTProcперед созданием окна.
CBTACTIVATESTRUCT Содержит сведения, передаваемые в процедуру перехватчика WH_CBT, CBTProcперед активацией окна.
CWPRETSTRUCT Определяет параметры сообщения, передаваемые процедуре перехватчика WH_CALLWNDPROCRET, CallWndRetProc.
CWPSTRUCT Определяет параметры сообщения, передаваемые процедуре перехватчика WH_CALLWNDPROC, CallWndProc.
DEBUGHOOKINFO Содержит сведения об отладке, передаваемые процедуре перехватчика WH_DEBUG, DebugProc.
EVENTMSG Содержит сведения об аппаратном сообщении, отправленном в очередь системных сообщений. Эта структура используется для хранения сведений о сообщении для функции обратного вызова JournalPlaybackProc.
KBDLLHOOKSTRUCT Содержит сведения о низкоуровневом событии ввода клавиатуры.
MOUSEHOOKSTRUCT Содержит сведения о событии мыши, переданном процедуре перехватчика WH_MOUSE, MouseProc.
MOUSEHOOKSTRUCTEX Содержит сведения о событии мыши, переданном процедуре перехватчика WH_MOUSE, MouseProc.
MSLLHOOKSTRUCT Содержит сведения о низкоуровневом событии ввода мыши.

SetWinEventHook