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