首页
社区
课程
招聘
[求助]setwindowshookex成功安装钩子,但是不能进入回调问题
发表于: 2015-6-7 19:42 5507

[求助]setwindowshookex成功安装钩子,但是不能进入回调问题

2015-6-7 19:42
5507
我在进程A中创建一个线程,并createthread一个线程
hthread := createthread(nil, 0, @LoginGame, moveinfo, 0, threadid);
在logingame的线程中使用setwindowshookex对进程B下键盘钩子
钩子安装成功了,但是不能进入回调是为什么?
我试了在进程A的主线程直接下钩子就可以进入回调函数,求解释下为什么,多谢。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我小小小白一个,帮上不忙,就帮你顶一下好吧,我也正在弄钩子没弄好,刚刚才把dll注入弄了一小小下,钩子目前用得不怎么会.
2015-6-7 19:55
0
雪    币: 7394
活跃值: (4101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
下的是WH_KEYBOARD_LL钩子还是WH_KEYBOARD钩子,如果是低级键盘钩子还好,如果是WH_KEYBOARD钩子而且是对其他进程下的话,回调函数必须写在dll里额。是不是这里的问题
2015-6-7 21:06
0
雪    币: 45
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
回调是在dll中进行的
2015-6-7 23:20
0
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
键盘钩子有两种

普通键盘钩子
如果针对其他进程中的线程挂钩,需要将钩子函数放到dll中。对自己进程中的线程则不必。可以针对全部线程也可以针对特定线程。

低级键盘钩子
不必放到dll中,原理是目标进程向发起钩子的进程发消息。此钩子只能针对所有线程,无法只针对特定线程。
2015-6-8 09:10
0
雪    币: 12
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
前段时间刚刚遇到这种问题,采用了多线程,需要再写一个消息循环才能回调
2015-6-19 07:17
0
游客
登录 | 注册 方可回帖
返回
//