呼。。终于可以摒弃网上带广告的改键工具了。。 历经三天,写出自己的dota改键软件最简单版了。 还学习了两个新知识,钩子和动态链接库。下面以一个新手的角度,总结下这三天遇到的大小问题。
一般钩子在什么时刻被调用?
操作系统把消息放进进程的消息队列后, 进程GetMessage()前。
钩子分类?
局部钩子:只能监视本进程内的线程。
远程钩子:远程钩子分为以下两种(两种一般都要DLL注入,极个别不用)
远程单线程钩子:监视单一线程。(魔兽改键。。 我用的就是这个~~)
全局钩子:监视所有线程。
钩子过程函数中,怎么样修改键值?
经测试,不可以修改健值。可能采取了副本复制之类的吧。可以keybd_event产生新消息,并屏蔽原消息。也可以用SendMessage...
貌似还可以用 WH_KEYBOARD_LL 来避免 DLL注入。。以后有心情再研究。备注下:
WH_KEYBOARD WH_KEYBOARD_LL 的区别?