我在一个监视鼠标手势的 DLL 中有这个全局鼠标钩子设置。
一切正常,但为 WH_MOUSE_LL 设置了一个钩子,这是一个低级钩子,不需要在外部可注入 DLL 中。
一旦我切换到更合适的那个会说 - WH_MOUSE 鼠标钩,一切都崩溃了。一旦我在我的主应用程序(安装钩子的那个)之外单击,钩子就会损坏 - ::UnhookWindowsHookEx 将失败。
我只发现这个人在专家交流中说:
“没办法,至少在Windows XP + SVP2下WH_MOUSE不会全球化,你必须改用WH_MOUSE_LL。”
我正确设置了钩子:在使用共享数据部分的 DLL 中,从钩子过程中发布而不发送消息。
为什么这发生了变化?为什么没有记录?有人遇到过这个吗?谢谢!
顺便说一句:我对流行的StrokeIt应用程序进行了一些逆向工程,它使用了 WH_GETMESSAGE 和 WH_MOUSE 钩子的组合,并且仍然可以在 XP/Vista 上运行......