我正在尝试设置 USB 键盘的键盘 LED。我已经尝试过/知道以下内容:
设置PS/2您可以使用的键盘 LED CreateFile("\\.\Keybd", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); DeviceIoControl(hKeybd, IOCTL_KEYBOARD_SET_INDICATORS...
设置真正 HID 的 LED兼容键盘,您可以使用 DirectInput、SendDeviceData 以及用法页面 8。
您可以使用 SendInput/keybd_event。但这也会改变状态。因此,当您在用户键入时使用此方法更改 CAPS LOCK 时,他/她将获得大小写字母:-)
当我使用两个键盘研究方法 2 时,SendDeviceData 函数总是返回 E_NOTIMPL。似乎很多 USB 键盘制造商都依赖内置的 HID 驱动程序。在这种情况下,HID 驱动程序将键盘报告为 PC 增强型键盘并表示它是“仿真”。但是 Windows HID 仿真不支持 SendDeviceData。
所以我怀疑必须有另一种方法来设置键盘 LED。 Windows 必须与 USB 键盘对话才能设置 LED :-)
如何在不更改键盘状态的情况下更改键盘 LED?
最佳答案
使用 HID Descriptor Tool查看HID Report Descriptors对于每个键盘。键盘需要实现用法页面 8(“LED”)。否则,可能无法通过 USB 接口(interface)控制这些指示器,或者可能以非标准方式完成控制。
或者,您可以尝试使用 keybd_event 设置特殊键状态也许 Windows 会自动为您切换 LED。
关于windows - 如何在 Windows 下设置 USB 键盘的 LED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375268/