我想制作一个程序,即使它在任何时刻都不处于活动状态,也可以捕获键盘事件。挂钩(Hooks)需要我做很多事情才能使其工作(创建DLL、读取等),因此我决定继续使用热键。
但现在我有一个问题。注册热键会禁用键盘上的该按键,因此我只能将该按键发送到程序中,而无法在其他程序(例如Notepad)中输入。
这是我的代码:
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char* argv[]) {
RegisterHotKey(NULL, 1, NULL, 0x41); //Register A
MSG msg = {0};
while (GetMessageA(&msg, NULL, 0, 0) != 0) {
if (msg.message == WM_HOTKEY) {
cout << "A"; //Print A if I pressed it
}
}
UnregisterHotKey(NULL, 1);
return 0;
}
// and now I can't type A's
有没有解决这个问题的简单方法? 谢谢。
WH_KEYBOARD_LL
)。它只是几个钩子 / 解钩子调用和回调。对其进行一些处理,然后传递它。 - chrisGetAsyncKeyState
。 - chris