C++ 用GetAsyncKeyState() 获取所有按键码

简介: C++ 用GetAsyncKeyState() 获取所有按键码

无聊地把整张虚拟键码表放进一个数组^_^

#include <iostream>
#include <iomanip>
#include <windows.h>
#include <array>
using namespace std;
void gotoXY(short x, short y)
{
    COORD position = {x, y};
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hConsole, position);
}
array<string,256> VKCode={
"",
/*001-*/"LBUTTON","RBUTTON","CANCEL","MBUTTON","XBUTTON1","XBUTTON2","","BACK","TAB","",
/*011-*/"","CLEAR","RETURN","","","SHIFT","CONTROL","MENU","PAUSE","CAPITAL",
/*021-*/"","","","","","","ESCAPE","","","",
/*031-*/"","SPACE","PRIOR","NEXT","END","HOME","LEFT","UP","RIGHT","DOWN",
/*041-*/"SELECT","PRINT","EXECUTE","SNAPSHOT","INSERT","DELETE","HELP","0","1","2",
/*051-*/"3","4","5","6","7","8","9","","","",
/*061-*/"","","","","A","B","C","D","E","F",
/*071-*/"G","H","I","J","K","L","M","N","O","P",
/*081-*/"Q","R","S","T","U","V","W","X","Y","Z",
/*091-*/"LWIN","RWIN","APPS","","SLEEP",
/*096-*/"NUMPAD0","NUMPAD1","NUMPAD2","NUMPAD3","NUMPAD4",
/*101-*/"NUMPAD5","NUMPAD6","NUMPAD7","NUMPAD8","NUMPAD9",
/*106-*/"MULTIPLY","ADD","SEPARATOR","SUBTRACT","DECIMAL",
/*111-*/"DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9",
/*121-*/"F10","F11","F12","F13","F14","F15","F16","F17","F18","F19",
/*131-*/"F20","F21","F22","F23","F24","","","","","",
/*141-*/"","","","NUMLOCK","SCROLL","","","","","",
/*151-*/"","","","","","","","","","LSHIFT",
/*161-*/"RSHIFT","LCONTROL","RCONTROL","LMENU","RMENU",
/*166-*/"BROWSER_BACK","BROWSER_FORWARD","BROWSER_REFRESH","BROWSER_STOP","BROWSER_SEARCH",
/*171-*/"BROWSER_FAVORITES","BROWSER_HOME","VOLUME_MUTE","VOLUME_DOWN","VOLUME_UP",
/*176-*/"MEDIA_NEXT_TRACK","MEDIA_PREV_TRACK","MEDIA_STOP","MEDIA_PLAY_PAUSE","LAUNCH_MAIL",
/*181-*/"LAUNCH_MEDIA_SELECT","LAUNCH_APP1","LAUNCH_APP2","","",
/*186-*/"OEM_1","OEM_PLUS","OEM_COMMA","OEM_MINUS","OEM_PERIOD",
/*191-*/"OEM_2","OEM_3","","","","","","","","",
/*201-*/"","","","","","","","","","",
/*211-*/"","","","","","","","","OEM_4","OEM_5",
/*221-*/"OEM_6","OEM_7","OEM_8",
/*
186【;:】VK_OEM_1
187【=+】VK_OEM_PLUS
188【,<】VK_OEM_COMMA
189【-_】VK_OEM_MINUS
190【.>】VK_OEM_PERIOD
191【/?】VK_OEM_2
192【`~】VK_OEM_3
219【[{】VK_OEM_4
220【\|】VK_OEM_5
221【]}】VK_OEM_6
222【'"】VK_OEM_7
空值为未定义值或非标准键盘的Key 
*/
};
int main()
{
  gotoXY(15,8);
  cout<<"请按键:"; 
  while(1){
    for (int i=1;i<=255;i++){
        if (GetAsyncKeyState(i)&1){
          gotoXY(24,8);
            cout<<"\t\t\t\t\b\b\b\b"<<dec<<i<<"(10)"<<hex<<i<<"(16):VK_"<<VKCode.at(i);
        }
    }
  }
  return 0; 
}
目录
相关文章
|
存储 小程序 UED
微信小程序代码包限制2M 怎么解决?
微信小程序代码包限制2M 怎么解决?
1206 1
|
9月前
|
存储 JSON 区块链
【HarmonyOS NEXT开发——ArkTS语言】购物商城的实现【合集】
HarmonyOS应用开发使用@Component装饰器将Home结构体标记为一个组件,意味着它可以在界面构建中被当作一个独立的UI单元来使用,并且按照其内部定义的build方法来渲染具体的界面内容。txt:string定义了一个名为Data的接口,用于规范表示产品数据的结构。src:类型为,推测是用于引用资源(可能是图片资源等)的一种特定类型,用于指定产品对应的图片资源。txt:字符串类型,用于存放产品的文字描述,比如产品名称等相关信息。price:数值类型,用于表示产品的价格信息。
274 5
|
11月前
|
设计模式 前端开发 Java
javaweb中MVC讲解!
JavaWeb MVC是一种设计模式,用于将Web应用的模型(Model)、视图(View)和控制器(Controller)分离,以实现职责解耦。模型负责数据管理和业务逻辑,视图负责展示数据,控制器负责处理用户请求并协调模型和视图。三层架构则将应用分为表现层、业务逻辑层和数据访问层,每层各司其职,提高系统的灵活性和可维护性。MVC主要应用于表现层,而三层架构则更侧重于整体系统结构。两者可以共存,共同提升项目的开发效率和质量。
288 1
|
编解码
RTP传输AAC
RTP传输AAC
334 1
【洛谷 P1443】马的遍历 题解(广度优先搜索)
该问题是一个棋盘上的马的最短路径问题。给定一个$n\times m$的棋盘和起点$(x, y)$,需要计算马到达棋盘上每个位置的最短步数。输入包含$n, m, x, y$,输出是一个矩阵,表示各位置的步数或未可达的$-1$。使用广度优先搜索(BFS)策略,从起点开始遍历,直到访问完所有可达位置。代码中定义了太阳数组表示马的移动方向,并通过队列实现BFS。最后输出格式要求每个数字左对齐且域宽为5。
178 0
|
SpringCloudAlibaba Java Nacos
Nacos报错问题之服务端注册的时候返回404如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
1725 1
|
编解码 数据安全/隐私保护 计算机视觉
音视频学习之ffmpeg常用基础命令整理
音视频学习之ffmpeg常用基础命令整理
343 0
|
Android开发
Android控制软键盘的弹出和隐藏
弹出软键盘 前提:必须要有一个可以编辑的控件(EditText),并且当前已经获取焦点 /** * 弹出软键盘 */ public void openKeyboard(View view) { // 获取焦点 editText2.
1358 0
|
Windows
模拟鼠标键盘操作(硬件模拟)
3.驱动级模拟(硬件模拟)  如果上面的方法你都试过了,可是你发现目标程序却仍然顽固的不接受你模拟的消息,寒~~~~~~~~~还好,我还剩下最后一招,这就是驱动级模拟:直接读写键盘的硬件端口!  有一些使用DirectX接口的游戏程序,它们在读取键盘操作时绕过了windows的消息机制,而使用DirectInput.这是因为有些游戏对实时性控制的要求比较高,比如赛车游戏,要求以最快速度响应键盘输入。
4508 0
pip安装skbuild报错:ModuleNotFoundError: No module named ‘skbuild’解决方法
pip安装skbuild报错:ModuleNotFoundError: No module named ‘skbuild’解决方法,换源
1063 0