【发布时间】:2010-11-04 03:55:12
【问题描述】:
我在一个监视鼠标手势的 DLL 中有这个全局鼠标挂钩设置。
一切正常,但为 WH_MOUSE_LL 设置了一个钩子,这是一个低级钩子,不需要在外部可注入 DLL 中。
一旦我切换到更合适的那个会说 - WH_MOUSE 鼠标钩,一切都崩溃了。一旦我在我的主应用程序(安装钩子的那个)之外单击,钩子就会损坏 - ::UnhookWindowsHookEx 将失败。
我只找到this guy saying at experts exchange:
“没办法,至少在Windows XP + SVP2 WH_MOUSE 不会走向全球,你 必须改用 WH_MOUSE_LL。”
我正确设置了钩子:在使用共享数据部分的 DLL 中,从钩子过程发布而不发送消息。
为什么会发生这种变化?为什么没有记录?有人遇到过这个吗?谢谢!
顺便说一句:我已经对流行的StrokeIt 应用程序进行了一些逆向工程,它使用了 WH_GETMESSAGE 和 WH_MOUSE 挂钩的组合,并且仍然适用于 XP/Vista...
【问题讨论】:
-
对于自动化应用程序,必须在某一点上进行鼠标挂钩。神速;)
-
使用反斜杠转义星号和下划线等特殊字符。例如,*不是* _italic_。
标签: c winapi mouse hook low-level