我想做的是:获得USB HID ID当我按下键我的真正符合人体工程学 键盘有能力去重新编程固件键盘。
我知道有这个来自微软的列表具有大量 USB HID ID。
但是,只需键入并查看程序中显示的键 ID 即可更轻松地找到键的 ID。尤其是对于某些媒体键,我在 Microsoft 的列表中找不到这些键。
有这样的程序吗?可能是命令行程序。Linux 是首选,但 Windows 也是一个选择。
PS:我已经看到了,这个问题/dev/usb/hiddev0
stackoverflow 上有一个有趣的答案。但我在我的系统 (Fedora 17) 上找不到。
更新
在这个问题@Andy Ross 的回答至少帮助我在按下按键时获得了一些输出。我做到了
xxd -c 144 /dev/input/by-path/pci-0000:00:1a.0-usb-0:1.1:1.0-event-kbd
但它仍然不太好读。当我按下相同的键时,结果并不总是相同的。
更新2
在这个问题Apython 脚本已链接,它读取输入设备并应打印它。但在工作电脑上,我没有权限使用此 python 脚本访问该设备。
答案1
答案是:
su -c "while true; do od --read-bytes=144 --width=144 -x /dev/input/event3 | awk 'NF > 1 { print \$12 }'; done"
说明
使用 tree 命令我发现了这一点
$ tree /dev/input/by-path
/dev/input/by-path/
├── pci-0000:00:1a.0-usb-0:1.1:1.0-event-kbd -> ../event3
├── pci-0000:00:1a.0-usb-0:1.1:1.1-event -> ../event4
├── pci-0000:00:1d.2-usb-0:1:1.0-event-mouse -> ../event2
└── pci-0000:00:1d.2-usb-0:1:1.0-mouse -> ../mouse0
好的,/dev/input/event3
也是我的键盘。
该od
命令以八进制和其他格式转储文件。
- 使用该
-x
选项,它会转储十六进制。 - 并且使用该
--width=144
选项时每按一次键仅转储一行(一行长 144 字节)。 - 144 字节后选项
--read-bytes=144
退出。od
该awk
命令打印整行中的第 12 个字段。仅当字段数NF
大于 1 时才会打印,因为每隔一行就有一个换行符。
整个循环while true
的原因是,如果我输入一些字母键,它就会中断。我没有得到更多结果,只有0000
。但是od
命令在 144 字节(一次按键)后停止读取。之后它会重新启动。肯定有更好的解决方案,但这是一个很好的解决方法。
示例输出(我按了几次Return、RightCtrl和Backspace,这样在与此进行比较时就可以得到正确的数字来自微软的文档(PDF)或者此文本文件文档)
0028
0028
0028
00e4
00e4
00e4
002a
002a
002a
答案2
xev
在 Linux 中将会帮助你。
祝你好运。