首页
社区
课程
招聘
[求助]有关鼠标钩子的一个问题
发表于: 2008-12-12 23:31 5838

[求助]有关鼠标钩子的一个问题

2008-12-12 23:31
5838
现在我想做一个钩子,功能是:当我按住alt键不放,同时单击鼠标左键,但是我想屏蔽掉alt键的作用,相当于只按了鼠标左键的效果,请问如何实现。想破头皮,也想不明白,望高人给点思路。

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

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
WM_LBUTTONUP消息的参数中是不带有ALT键的信息的,所以你要挂的程序肯定是自己实现了判断ALT键是功能。

逆向一下,试试GetKeyBoardState()函数能不能断下来。

如果能找到主窗口的窗口函数,那就再方便不过了。
2008-12-12 23:58
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢书呆彭的指点。
看了msdn的解释,在代码中试了试GetKeyState(VK_MENU);或者{BYTE state[256];GetKeyBoardState(state[VK_MENU);}
对于这两个函数的解释msdn中,都出现了high-order byte 和 low-order byte,不明白指得是那一位。
获得alt键的状态算是第一步实现了,那么怎么屏蔽掉alt键的作用,望高人指点。
2008-12-14 10:36
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
既然找到了获取按键信息的地方,那剩下的就简单了呀,patch代码,或patch数据都可以的。
2008-12-14 12:39
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
path代码和数据?不懂,能否详细说明下
2008-12-14 12:51
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
6
什么时候能象呆呆那样博学就好了
2008-12-14 12:56
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我的代码是,挂接两个钩子,因为实现两个功能,第一个挂的WH_KEYBOARD_LL,按一下alt键,不屏蔽wm_syskeydown,屏蔽掉wm_syskeyup,再按一下alt键,屏蔽掉wm_syskeydown,不屏蔽wm_syskeyup.
本来上面实现就可以了,但是当按奇数次alt键之后,因为没有返回wm_syskeyup,会对鼠标左键点击造成影响,所以我想怎么屏蔽掉对鼠标左键的影响
2008-12-14 13:01
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
惭愧,在下新手。。。
2008-12-14 13:02
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
问题仍待解决,up一下。
其实我想做一个魔兽3的一个游戏钩子,在魔兽争霸游戏里,按住alt键不放,则显示血条,松开血条消失。所以我想做一个钩子,按一下alt,显示血条,再按一下alt,血条消失。本来这个功能通过挂WH_KEYBOARD_LL,就可以实现。但是问题是,在这个游戏里,如果你一直按着alt键,同时点击鼠标左键的话,和只点击鼠标左键的效果是不一样的。所以我想消除前面挂的钩子对鼠标左键的影响,或者有没有其他方法实现这个功能的。
2008-12-19 20:46
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
10
偶都是用现成滴,网上下的,易语言写的
2008-12-19 20:52
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
11
请问LZ
若你这问题解决了, 原游戏的 ALT+LButton该怎么解决 ?
(任何状态之下)

为什么血条你一定要用 ALT ?
2008-12-19 20:58
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
12
魔兽的显血是通过OEM_VKEY实现的。

我这里分析过一个小工具,有兴趣可以看一下。

http://bbs.pediy.com/showthread.php?t=74890
2008-12-19 22:44
0
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
13


不过2.22已经带这个功能了,技术学习了~~~
2008-12-19 23:23
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
14
因为魔兽本身就是按ALT显示血条的
2008-12-20 00:04
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
15
原来如此
没在玩游戏, 跟社会脱结了
2008-12-20 05:58
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
都有人做过这个程序了 学习下
2008-12-20 10:37
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
其实就这个问题,两个星期前,我问过一个高人。他给的答复很简单---显示己方血条keybd_event( 0xdb, 0, 0, 0 ),显示敌方血条::keybd_event( 0xdd, 0, 0, 0 )。当时觉得这个回答根本和我的问题风马牛不相提。两个星期后,终于明白了原来这两句代码就是整个问题的核心啊,17k的高人,不服不行!
2008-12-21 21:39
0
游客
登录 | 注册 方可回帖
返回
//