C++检测键盘某键是否按下的方法

时间:2022-10-29 23:12:52

检测键盘与鼠标差不多,但是它比较好记

但是比较奇怪,比如你想要检测字母,必须是它的大写

具体的就参照虚拟键盘值表,上百度可以查到

为了能更清楚地表达,我编了个小程序

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include<iostream>
#include<windows.h>
 
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //必要的,我是背下来的
 
using namespace std;
 
void color(int a){//改变输出的颜色,比system("color x")快得多
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
/*
<span style="white-space:pre">    </span>字
    1   深蓝色
    2   深绿色
    3   深青色
    4   深红色
    5   深粉色
    6   黄色
    7   深白色
    8   灰色
    9   浅蓝色
    10  浅绿色
    11  浅青色
    12  浅红色
    13  浅粉色
    14  浅黄色
    15  浅白色
    
    背景
    1~15        黑色
    16~31       深蓝色
    32~47       深绿色
    48~63       深青色
    64~79       深红色
    80~95       深粉色
    96~111      深黄色
    112~127     深白色
    128~143     灰色
    144~159     浅蓝色
    160~175     浅绿色
    176~191     浅青色
    192~207     浅红色
    208~223     浅粉色
    224~239     浅黄色
    240~255     浅白色
*/
}
 
void check(char c){//检测某个按键是否按下,按下就改变输出颜色
    if(!KEY_DOWN(c))color(7);
    else color(112);
    printf(" %c ",c);
    color(7);
}
 
int main(){
    while(1){
        check('Q');check('W');check('E');check('R');check('T');check('Y');check('U');check('I');check('O');check('P');
        printf("\n\n ");
        check('A');check('S');check('D');check('F');check('G');check('H');check('J');check('K');check('L');
        printf("\n\n ");
        check('Z');check('X');check('C');check('V');check('B');check('N');check('M');
        
        Sleep(20);//循环时间间隔,防止太占内存
        system("cls");//清屏
    }
 
    return 0;
}

以上这篇C++检测键盘某键是否按下的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/everlasting_20141622/article/details/52222006