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