如何检测键盘上按下删除键的时间?

时间:2015-12-24 11:20:03

标签: c windows winapi getch del

我希望在按下 Del 键时调用某个函数。 如果可能,我如何使用getch()或以其他方式嵌套getch()来调用?

2 个答案:

答案 0 :(得分:1)

函数_getch()返回游标和页面控制键的“转义”值。对于键盘和功能键,即0后跟键码,对于其他键,它是224,后跟键码。

#include <stdio.h>
#include <conio.h>

#define ESC     27
#define ESC1    0
#define ESC2    224

int main()
{
    int d=-1, e=-1;
    printf("Press a key (Esc to quit)\n");
    do {
        d = _getch();  
        if (d == ESC1) {
            e = _getch();  
            printf("%d %d\n", d, e);
        } else if (d == ESC2) {
            e = _getch();  
            printf("%d %d\n", d, e);
        } else {
            printf("%d\n", d);
        }
    } while (d != ESC);
    return 0;
}

运行程序并按三个键Delete,Del(小键盘),Esc生成输出

Press a key (Esc to quit)
224 83
0 83
27

当然,Numlock必须关闭。

答案 1 :(得分:0)

你应该寻找这个函数kbhit()。它基本上用于键盘命中并查找del键ascii代码并与之匹配。