问题:
我自己写的一个程序,使用 SetWindowsHookEx 设置了一个全局钩子(WH_MOUSE,鼠标钩子),并且把钩子的处理函数HookProc放在了一个DLL里面,函数调用成功,但是我发现HookProc只能钩到某些程序的鼠标消息,有些程序的鼠标消息钩不到,我花了几天时间在网上查资料,包括MSDN,都没有答案,很是郁闷。
一个可能的原因
1. 程序如果是32位的,就要编译成32位,如果是64位的,就要编译成64位的,才可以。不管Windows是32位还是64位的。
2. 钩子的处理函数,比如叫HookProc,是不能调试的,也不能输出TRACE,只能用MessageBox,或者写到一个文件里来输出信息。因为这个处理函数是运行在目标程序的进程中。
本文探讨了使用SetWindowsHookEx设置全局鼠标钩子时遇到的问题,即钩子无法捕获部分程序的鼠标消息。文章提供了两个可能的原因:一是钩子函数需与目标程序位数匹配;二是钩子处理函数不能进行调试或输出TRACE。
1万+

被折叠的 条评论
为什么被折叠?



