![是否有一个工具可以显示按下了哪些键盘按钮?](https://linux22.com/image/1571288/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E5%B7%A5%E5%85%B7%E5%8F%AF%E4%BB%A5%E6%98%BE%E7%A4%BA%E6%8C%89%E4%B8%8B%E4%BA%86%E5%93%AA%E4%BA%9B%E9%94%AE%E7%9B%98%E6%8C%89%E9%92%AE%EF%BC%9F.png)
是否有一个工具可以在驱动程序级别或内核级别指示键盘上的哪些键在任何时候被按下?
(问题:我怀疑键盘上的 Print Screen 按钮不起作用。我想确认这是一个硬件问题。也适用于诊断 F1-F12 键或其他功能键。)
答案1
Linux
如果你有 Linux 系统(liveCD/USB 都可以),你可以使用工具来查看埃夫德夫键事件。它们发生在内核处理之后(而非原始 USB 扫描码),但在任何用户空间处理之前。
微软无线设备应该可以工作。
- 安装埃韦穆或者evemu 工具包裹。
- 在终端中,运行
sudo evemu-record
以获取已识别的输入设备列表。 - 输入设备编号。(也可以在步骤 2 中直接提供 /dev 路径。)
- 按下各种键并观察事件。(监控不是排他性的,因此相同的事件将继续到达操作系统的其余部分 - 例如,如果你按下 PrintScr,它将显示在 evemu-record 中和将会进行截图。)
- 使用 Ctrl+C 终止该程序。
或者,查看“原始扫描码”(不是完全原始的,但相当接近):
- 检查您是否已经拥有韋斯特包裹。
- 使用 Ctrl+Alt+F2 访问普通的非 X11 控制台。(如果在 F2 处找不到,请尝试 F3、F4、F5……)
- 跑步
showkey --scancodes
。 - 按一些键。所有内容都会被 showkey 程序截取。您将看到每按一次或释放一次键都会有一行,其中包含不同数量的扫描码。(我不知道它们是直接来自 USB,还是转换为 AT / PS/2 等效物。
- 要退出,请停止按压并等待 10 秒钟。
视窗
没有找到任何东西。大多数程序都会显示已处理的键代码。
答案2
我遇到过一种情况,需要找出哪个设备或程序触发了“按钮按下”状态。
我发现 Windows 上唯一有用的工具是NirSoft 的“KeyboardStateView”。
一个网站在输入框上显示按下的按键,并且焦点在输入框上,这里。