c - 如何检测键盘上的删除键何时被按下?

标签 c windows winapi getch del

我希望当按下 Del 键时调用某个函数。 如果可能的话,如何使用 getch() 或其他嵌套的 getch() 调用来实现这一点?

最佳答案

函数_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 必须关闭。

关于c - 如何检测键盘上的删除键何时被按下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34451998/

相关文章:

c# - 获取当前的笔记本电脑盖子状态

c - 元素未插入队列中的不同位置,值未正确显示

c - 导入 CUnit 源代码

curses.h 库中的 Clear() 函数

python - 使用 Python 进行 Windows 进程管理

c++ - 如何强制 MessageBox 显示为顶部窗口

c - 如何在 C 语言中使用 printf,我的代码应该打印出什么?

windows - 如何为每个用户设置时区设置?

java - 如何判断java程序运行时是否以管理员身份运行

c - 模拟 printf 堆栈弹出