首页 新闻 会员 周边 捐助

SetWindowsHookEx 键盘钩子 api

0
悬赏园豆:15 [已解决问题] 解决于 2011-08-25 21:20

  hMouseHook = SetWindowsHookEx(WH_KEYBOARD, keyboardproc, GetModuleHandle(System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName), Tid);

如果Tid为得到的线程ID的话,就返回0 也就是说钩子挂载失败

但如果为0的话,就会成功, 但成全局的了

为啥呀

问题补充:
SetWindowsHookEx的最后一个参数本来是窗体的线程ID,现将它设为0,变成全局钩子,就能hook成功,我测试过,能hook到该窗体的我想要的消息。当然,全局钩子太影响性能,实际不可行。但就hook本身而言,是可以成功的。百思不得其解
陌文隐的主页 陌文隐 | 初学一级 | 园豆:92
提问于:2011-06-06 14:37
< >
分享
最佳答案
0

  使用GetLastError查看错误码,可以确定错误

收获园豆:15
2012 | 高人七级 |园豆:21645 | 2011-06-07 08:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册