我的程序知道 2 个状态:A 和 B,其中 A 是默认状态。当您按 ALT-# 时,它应该将其状态更改为 B,当您释放组合时,它应该返回到 A。这应该与低级键盘钩子一起使用,但似乎我被困在某个地方。
#define VK_POUND 0xBF // 191 - the # key
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {
if (nCode == HC_ACTION) {
KBDLLHOOKSTRUCT* kbdStruct = reinterpret_cast<KBDLLHOOKSTRUCT*>(lParam);
switch (wParam) {
case WM_KEYDOWN: {
std::cout << kbdStruct->vkCode << "\n";
if (kbdStruct->vkCode == VK_POUND && kbdStruct->flags & LLKHF_ALTDOWN) {
MessageBox(NULL, "WE GOT IT", "", MB_OK);
}
} break;
case WM_KEYUP: {
} break;
}
}
return CallNextHookEx(g_HotKeyHook, nCode, wParam, lParam);
}
让我感到困惑的是:当我按下组合 ALT 和 # 时,控制台中没有输出。