目標:我想知道用戶是否按了一些我想知道的熱鍵,例如我想知道他/她在Chrome上按Ctrl + NWINAPI鍵盤檢測其他應用程序熱鍵
我嘗試檢測應用程序熱鍵,如可能Chrome Chrome + N打開新選項卡。
winapi如何檢測到這一點?
我見過一些文章說WM_KEYUP + WM_KEYDOWN,但是wParam有一次可以得到一個WM_KEYUP或WM_KEYDOWN,怎麼實現呢?
int main(int argc, char *argv[])
{
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyBoardHookProc, hInstance, 0);
hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, hInstance, 0);
while (GetMessage(&message,NULL,0,0)) {
TranslateMessage(&message);
DispatchMessage(&message);
}
UnhookWindowsHookEx(hHook);
UnhookWindowsHookEx(hMouseHook);}
KeyBoardHookProc(int nCode, WPARAM wParam, LPARAM lParam){
KBDLLHOOKSTRUCT cKey = *((KBDLLHOOKSTRUCT*)lParam);
.................
if(wParam == WM_KEYUP)
{
kp.HandlekeyboardInfo(lpszName, buffer);
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
感謝您的幫助!
這使得幾乎沒有意義。你能退後一步告訴我們你的實際目標嗎?我很確信你選擇了錯誤的解決方案。 –
我想知道用戶是否按了一些我想知道的熱鍵,就像我想知道他/她在Chrome上按Ctrl + N – geraldlim
RegisterHotKey與什麼有關?這與此無關。你需要聽取CTRL下降,然後N下降。 –