【发布时间】:2015-07-04 17:27:14
【问题描述】:
我们如何读取键盘上每个键的 ascii?
我使用getch() 读取delete 和其他类似的键.. 但不读取FN keys 或Numlock 或任何全局快捷键..
那么如何在 C 程序中捕获这些键?
【问题讨论】:
我们如何读取键盘上每个键的 ascii?
我使用getch() 读取delete 和其他类似的键.. 但不读取FN keys 或Numlock 或任何全局快捷键..
那么如何在 C 程序中捕获这些键?
【问题讨论】:
提到了三种情况:
在 Linux 的上下文中,getch 指的是一个 ncurses 函数。如果您使用的是 ncurses,那么您可以告诉它解码功能键(发送一系列字符)并将它们作为单个数字返回(恰好太大,无法放入 char)。例如
int ch;
keypad(stdscr, TRUE);
ch = getch();
NumLock 是不同的情况,因为它(如 control 和 shift 键)被用作 修饰符 em> 并且通常不发送任何字符:
xterm)可以读取具有此信息的X 事件。在这种情况下,xev 的源代码是一个很好的起点。【讨论】: