我正在尝试设置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增强型键盘ans表示它是"仿真".但Windows HID仿真不支持SendDeviceData.
所以我怀疑必须有另一种设置键盘LED的方法.Windows必须与USB键盘通话才能设置LED :-)
有什么想法如何更改键盘LED而不改变键盘状态?