gpt4 book ai didi

c - 为什么 WH_MOUSE 钩子(Hook)不再是全局的?

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:37 28 4
gpt4 key购买 nike

我在监视鼠标手势的 DLL 中设置了这个全局鼠标 Hook 。

一切正常,但为 WH_MOUSE_LL 设置了一个 Hook ,这是一个低级 Hook ,不需要在外部可注入(inject) DLL 中。

一旦我切换到更合适的 - WH_MOUSE 鼠标钩子(Hook),一切都会分崩离析。一旦我在主应用程序(安装 Hook 的应用程序)外部单击, Hook 就会损坏 -::UnhookWindowsHookEx 将失败。

我只找到了this guy saying at experts exchange :

"No way, at least under Windows XP + SVP2 WH_MOUSE won't go global, you must use WH_MOUSE_LL instead."

我正确设置了 Hook :在使用共享数据部分的 DLL 中,从 Hook 过程中发布而不是发送消息。

为什么会这样?为什么没有记录?有人遇到过这个吗?谢谢!

顺便说一句:我对流行的 StrokeIt 进行了一些逆向工程。应用程序,它使用 WH_GETMESSAGE 和 WH_MOUSE Hook 的组合,并且仍然可以在 XP/Vista 上工作...

最佳答案

不确定这作为评论是否会更好,但这里是:我相信根据 MSDN WH_MOUSE 在线程级别或全局支持。

正如您自己指出的那样,有很多应用程序在使用它。

所以我的猜测是您对全局 WH_MOUSE 的具体实现存在问题,需要调试和修复。当您说“钩子(Hook)损坏”时,到底发生了什么? Hook 的应用程序会崩溃吗?您能否将调试器附加到您希望从中发生鼠标事件的应用程序,并检查 Hook 中真正崩溃的是什么?

关于c - 为什么 WH_MOUSE 钩子(Hook)不再是全局的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1015393/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com