用钩子函数进行修改键盘信号的问题。

来源:百度知道 编辑:UC知道 时间:2024/04/20 16:34:16
目的:由于游戏中快捷键不能修改,所以我只能通过修改键盘上信号,达到变相改变快捷键.
主要问题:
1,我想改魔兽争霸这种游戏的快捷键,但是这样子,键盘输入的信号可能会饶过系统消息机制,所以,我目前是以魔兽争霸这游戏,键盘的输入信号也是要进入系统消息循环的.主要的问题是,我能获得键盘输入信号,也修改好了,怎么让它继续像正常情况下传递给游戏.
我是通过自己写的回调函数里的WPARAM参数来得知键盘的信号,然后我改掉后,用CallNextHookEx( hkb, nCode,WPARAM, lParam ),发现不行.我就是想知道怎么办.希望给具体一点的.本来想接受到想要的信号后,就模拟一下键盘输入事件,但是还没参透,已经怀疑这么做,可能会导致延时.
谢谢。

你就写一个动态链接库,在里面用钩子函数截获鼠标和键盘的消息,截获之后就可以将它改变成你自己乐意的了,这个你已经做到了,,然后将动态链接库的文件丢到你魔兽的库文件中,与动态链接库的文件放到一起。

游戏都是采用DirectInput, 不用经过系统消息系统。本来人家这样是为了提高性能的。

所以挂钩系统消息这种方法是无效的啦,DirectInput是独立的一套系统,不经过系统消息那里的。

CallNextHookEx返回的不是你修改的消息,而还是原来wParam的消息.而且这个消息不是返还给游戏的,而是返回给windows操作系统的.
如果你想修改原来的键盘消息,并且返回给游戏,只有拦截游戏的键盘API入口地址,然后中断后修改,最后返回给游戏.