Я пытаюсь установить светодиодные индикаторы клавиатуры USB-клавиатуры. Я уже пробовал / знаю следующее:
Для установки индикаторов клавиатуры PS / 2 вы можете использовать
CreateFile ("\\. \ Keybd", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
DeviceIoControl (hKeybd, IOCTL_KEYBOARD_SET_INDICATORS ...
Чтобы установить светодиоды действительно HID-совместимой клавиатуры, вы можете использовать DirectInput, SendDeviceData со страницей использования 8.
Вы можете использовать SendInput / keybd_event. Но это также изменит состояние. Поэтому, когда вы изменяете CAPS LOCK с помощью этого метода, пока пользователь печатает, он / она получит заглавные и строчные буквы: -)
Когда я исследовал метод 2 с двумя клавиатурами, функция SendDeviceData всегда возвращает E_NOTIMPL. Кажется, многие производители USB-клавиатур полагаются на встроенный драйвер HID. В этом случае драйвер HID сообщает, что клавиатура как улучшенная клавиатура ПК и говорит, что это «эмуляция». Но эмуляция Windows HID не поддерживает SendDeviceData.
Так что я подозреваю, что должен быть другой способ установить светодиоды клавиатуры. Windows должна разговаривать с USB-клавиатурой, чтобы установить светодиоды: -)
Есть идеи, как изменить светодиоды клавиатуры без изменения состояния клавиатуры?