1
我正在使用低级挂钩,但我无法确定按下了哪个键。每个密钥的值都相同。在这里,我做错了什么?按了什么键?键盘挂钩
挂钩方法
void hook() {
/** this part is probably not important since I use global WH_KEYBOARD_LL, is that right? */
HWND hwnd = FindWindow(NULL, "Vertices.exe");
HINSTANCE instance = (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE);
/** end part */
SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, instance /** or NULL ? */, NULL);
}
回调定义(我有在应用内容)
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
与任何键的给定值按下
nCode:0 | wParam:0x100 | lParam:0x18fe14
只是wParam参数更改为0x101在键上(0x100在键上)
如果我可能会问,什么是整体情况?可能有其他方法来实现你想要做的事情。 也是任何你失败的API调用?你检查了SetWindowsHookEx的返回值吗? – obelix 2010-08-16 16:51:13
你甚至尝试在MSDN中查看它吗? lParam不仅仅是一个数字。同样我也赞同obelix的说法,可能有更好的方法来实现你的总体目标,而不是键盘挂钩。 – tenfour 2010-08-16 16:51:28
@tenfour谢谢,这确实有帮助。您是否介意将它作为“KBDLLHOOKSTRUCT * kbdStruct =(KBDLLHOOKSTRUCT *)lParam;'的答案发布?谢谢 – 2010-08-16 17:02:03