关于KeyboardProc,在MSDN中,他这么说:wParam Specifies the virtual-key code of the key that generated the keystroke message.
精确的中文意思是:wParam表示产生此键盘消息的物理键的虚拟键值。
但是在WM_KEYDOWN消息中,MSDN却这么说:wParam Specifies the virtual-key code of the nonsystem key. 意思:wParam表示非系统键的虚拟键值。这个值才是键盘消息的wParm。
楼主的意思正是想要修改这个值。
可是在KeyboardProc中,那个wParam虽然与WM_KEYDOWN的wParam值相同,但却是不同的两个变量,kbHook的wParam是说哪个实际的物理键产生了此按键消息,在程序中表示键盘上的物理键当然还是用虚拟键值了,给我们造成了错觉,以为那个wParam就是WM_KEYDOWN、WM_KEYUP、WM_CHAR的wParam。
KeyboardProc中的wParam与lParam修改后对实际的消息都没有影响,这个值只能让你对产生的铵键的消息的内容进行参考,以决定下一步的程序流程。这就像你调试程序时,你在watch窗口中所看到的变量的值一样,只能看变量的值是多少,如果你能修改watch窗口中的值而且你修改了,仅仅是修改了显示,并没有真正修改程序中的变量值。
hook资料
最新推荐文章于 2021-07-21 14:49:03 发布