GNU/Linux 文本控制台,X11 不涉及,确实连 安装。键盘是美国布局,键盘映射美国默认。核心 版本 2.20.x 或更高版本。
用 C 编写的应用程序正在获取键盘输入
翻译模式,即 XLATE
或 UNICODE
。当一个键是
按下,应用程序收到相应的
键串。例如,您按 F1,应用程序
读取 "\033[[A"
。
在内核将 key 串发送给应用程序之前,它 必须知道按下了哪个键,即它必须知道它的 扫描码。在上面的 F1 示例中,键的扫描码 pressed 是 59 或 0x3b。
也就是说,即使键盘处于翻译模式,
扫描码保存在内存中的某个地方。怎样才能
应用程序访问它们而无需将键盘切换到
RAW
或 MEDIUMRAW
模式?代码片段会有所帮助。
最佳答案
可能是您在错误的文件描述符上发出 ioctl 命令,检查从 ioctl 和 tcsetattr 返回的错误代码。
您应该打开控制台设备,然后在该设备上发出键盘转换命令。您基本上必须模仿 X 服务器正在做的事情。
这是源代码的链接 codesearch.google.com .
关于linux - 键盘扫描码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/90704/