[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
我的实验如下:1.装一个全局低级钩子WH_KEYBOARD_LL,每一次按键能钩到一对wparam为WM_KEYDOWN/KEYUP的消息. 将钩到消息的lparam强转为KBDLLHOOKSTRUCT,其中包含成员变量KBLLHOOKSTRUCT.vkCode, 这个就是msdn中所说的'virtual-key-code'. 如果钩到的消息是被translate过的,那么钩到的应该是一个合并的character message,而不是一对。如果钩到的消息是被translate过的,那么钩到的消息的wparam应该是按键的ASCII码,而不是WM_KEYDOWN/KEYUP。由此推断,WH_KEYBOARD_LL钩到的是translate之前的消息。2.装一个全局高级钩子WH_KEYBOARD,每一次按键只能钩到一个WM_CHAR消息。打印钩到消息的wparam,其值为按键的ASCII码。由此推断,WH_KEYBOARD钩到的是translate之后的消息。