【发布时间】:2020-08-24 05:15:04
【问题描述】:
我是编程新手,目前我正在使用此代码来监听我的击键:
#include <windows.h>
#include <stdio.h>
int main()
{
while (1)
{
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE);
DWORD NumInputs = 0;
DWORD InputsRead = 0;
bool running = true;
INPUT_RECORD irInput;
GetNumberOfConsoleInputEvents(hInput, &NumInputs);
ReadConsoleInput(hInput, &irInput, 1, &InputsRead);
switch (irInput.Event.KeyEvent.wVirtualKeyCode)
{
case VK_F1:
puts("F1");
break;
case VK_F2:
puts("F2");
break;
case VK_F3:
puts("F3");
break;
case VK_F4:
puts("F4");
break;
}
}
}
但是,即使我的终端没有焦点,我也需要一个事件监听器。这可能吗?
【问题讨论】:
-
通过
SetWindowsHookEx()或RegisterRawInputDevices()使用键盘钩子 -
根据您的用例,RegisterHotKey 可能是一个解决方案。