我正在尝试设置 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?