钩
挂钩是系统消息处理机制中的一个点,应用程序可以安装子例程来监视系统中的消息流量,并在消息到达目标窗口过程之前处理某些类型的消息。
在本部分中
名字 | 描述 |
---|---|
挂钩概述 | 讨论应如何使用挂钩。 |
使用挂钩 | 演示如何执行与挂钩关联的任务。 |
挂钩参考 | 包含 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 函数一起使用的应用程序定义或库定义的回调函数。 该函数从系统接收 Shell 事件的通知。 |
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 | 包含有关低级别鼠标输入事件的信息。 |