Я пытался управлять светодиодами на моей мыши, используя hidapi, но всякий раз, когда я запускаю hid_write (), он возвращает -1. Я обнаружил, что ошибка вызывается внутри функции при вызове WriteFile () и что ошибка «Доступ запрещен». Существует часть программного обеспечения (iCue) для управления светодиодами и использования wireshark. Думаю, я понял, что отправить на мышь: ![Wireshark Screenshot](https://i.stack.imgur.com/Swlni.png)
Мой код:
int main() {
CorsairHIDDevices corsair_devs; //Initialize vector of HID devices
int num = detectCorsairMouseHIDDevice(corsair_devs); //Enumerates HID devices and adds the mouse devices to corsair_devs. Returns number of devices added.
hid_device* handle;
handle = hid_open(corsair_devs[0].vendor_id, corsair_devs[0].product_id, nullptr);
//Creates message to send to mouse based on info from wireshark
int logoLed = 1;
int sideLed = 1;
int scrollLed = 1;
int ledCode = logoLed + 2 * sideLed + 4 * scrollLed;
int red = 255;
int green = 0;
int blue = 0;
uint8_t buf[64] = { 0 };
buf[0] = 0x07; buf[1] = 0xaa;
buf[4] = ledCode;
buf[5] = 0x07; buf[8] = 0x64;
buf[9] = red; buf[12] = red;
buf[10] = green; buf[13] = green;
buf[11] = blue; buf[14] = blue;
buf[15] = 0x05;
hid_write(handle, buf, 64); //Sends message to mouse. Returns -1 (error).
}
Когда перечислено, есть 5 устройств, соответствующих мыши, я не совсем уверен, что это значит или как выяснить, какое использовать, но я попробовал все из них, и ни одно из них не работало. У меня нет большого опыта использования хидапи; большая часть кода переназначена с здесь . Любая помощь будет принята с благодарностью. Спасибо.