Windows 键盘输入 c++

Posted

技术标签:

【中文标题】Windows 键盘输入 c++【英文标题】:Windows keyboard input c++ 【发布时间】:2020-07-03 09:20:47 【问题描述】:

我知道对于 linux,您可以通过读取 /dev/input/eventX 来获取键盘输入。是否有类似的方法可以在 Windows 中获取输入?就像在没有任何第三方库的情况下知道何时按下某个键

【问题讨论】:

【参考方案1】:

您可以调用GetAsyncKeyState,并检查返回值中的0x8000位:

#include <iostream>
#include <windows.h>

int main() 
  while (1) 
    if (GetAsyncKeyState('A') & 0x8000) 
      std::cout << "'A' key is pressed\n";
     else 
      std::cout << "'A' key is not pressed\n";
    
    Sleep(250);
  

您可以找到虚拟键码列表here。字母和数字由它们对应的常规(大写)ASCII 字符表示,因此在此示例中,A 键只是 'A'。但是,如果您想检查 F1 键,例如,您可以使用 VK_F1

【讨论】:

以上是关于Windows 键盘输入 c++的主要内容,如果未能解决你的问题,请参考以下文章

C++非阻塞键盘缓冲区输入检测或读取函数是啥?

c++实现键盘记录仪(键盘钩子)

C++编程,从键盘输入两个数组,求两个数组的交集并输出。

c++从键盘输入字符串并保存成二进制文件

在控制台 C++ 中获取鼠标和键盘输入

c++编程)键盘输入一个高精度的正整数M,去掉其中任意S个数字后使剩下的数最小