![USB 键盘消息](https://linux22.com/image/1323126/USB%20%E9%94%AE%E7%9B%98%E6%B6%88%E6%81%AF.png)
我买了一个 (DIGITECH XC-4943) 多媒体键盘。它没有手册,而且有些键没有标签。有没有一个实用程序(或一些 delphi 代码)可以用来显示每个键发送的消息?
答案1
根据您使用的操作系统,您有不同的选择。
首先,您必须了解几个术语:Ascancode
是按键的最低标识号。如果按键没有扫描码,那么我们就无能为力,因为这意味着内核看不到它。Akeycode
是按键的第二级标识,一个键码对应一个功能。Asymbol
是按键的第三级标识,这是 Xorg 引用按键的方式。
作为 Linux 用户,您可以showkey
在 TTY 终端中使用该命令来检查键码。请勿在 Xorg 上的终端仿真器下使用该命令。如果您希望使用终端仿真器,请使用软件包xev
中的命令xorg-xev
。
如果您在屏幕上没有看到按键对应的键码,那么您必须冒险找到其扫描码并为其分配一个键码。
按下 TTY 终端上的键,然后执行:
$ dmesg|tail -5
如果你看到类似这样的内容:
atkbd.c: Unknown key pressed (translated set 2, code 0xf1 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e071 <keycode>' to make it known.
您知道内核识别了按键,但没有为其分配键码。使用setkeycodes
上述方法为扫描码分配键码。
编辑:如果您需要有关在 Xorg 中执行所有这些操作的更多信息,请告诉我。或者需要有关创建和分配特殊键的更多信息。