首页 > 解决方案 > SetWindowsHookEx() 设置的钩子按什么顺序接收消息?

问题描述

如果应用程序 A 调用 SetWindowsHookEx() 来插入一个低级鼠标钩子 (WH_MOUSE_LL),然后应用程序 B 也这样做,那么哪个会先收到消息?

标签: winapihooksetwindowshookex

解决方案


该行为记录在Hooks Overview下:

SetWindowsHookEx函数总是在钩子链的开头安装一个钩子过程。当某个特定类型的钩子监视的事件发生时,系统会在与该钩子关联的钩子链的开头调用该过程。链中的每个钩子过程确定是否将事件传递给下一个过程。挂钩过程通过调用CallNextHookEx函数将事件传递给下一个过程。

在您的示例中,钩子 B 将首先收到消息,因为它是最近安装的。


推荐阅读