永发信息网

SetWindowsHookEx 最后个参数用其他线程id就失败 全局钩子可以成功

答案:2  悬赏:70  手机版
解决时间 2021-02-16 02:09
  • 提问者网友:呐年旧曙光
  • 2021-02-15 11:26
SetWindowsHookEx的最后一个参数本来是窗体的线程ID,现将它设为0,变成全局钩子,就能hook成功,我测试过,能hook到该窗体的我想要的消息。当然,全局钩子太影响性能,实际不可行。但就hook本身而言,是可以成功的。百思不得其解。
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-02-15 11:53
SetWindowsHookEx 的 最后一个参数 线程ID,其实应该填当前线程ID或者当前线程派生的线程ID,对于别的进程的线程ID是无效的!

你这种情况只能做全局钩子,然后在宿主进程空间中判断当前线程是不是你要hook的那个窗口线程。
全部回答
  • 1楼网友:酒醒三更
  • 2021-02-15 12:27
getcurrentthreadid()是执行这句代码的线程的线程id, 你那个 intptr.zero,pro.threads[0].id是什么东西的id啊?  
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯