Захватите сырые данные USB-мыши с помощью libusb

Я хочу захватывать необработанные данные с USB-мыши, используя библиотеку libusb на C#.

Я могу читать данные с помощью класса UsbEndpointReader, но есть проблема.

Когда я пытаюсь прочитать данные, кажется, что Windows тоже пытается читать, и я не могу прочитать все данные, а ОС тоже не может, потому что движения мыши имеют некоторые шаги. Я хочу прочитать все данные и позволить ОС читать эти данные (я имею в виду без проблем при перемещении курсора).

Другая проблема, с которой я столкнулся, заключается в том, что я не знаю, как получить дескриптор HID. Я знаю, что это возможно, вызывая метод GetDescriptor, но как я могу это сделать?

1 ответ

Решение

Чтобы избежать конфликта чтения Windows с помощью мыши, необходимо отключить связанный экземпляр мыши в диспетчере устройств.

Если вы хотите иметь общий доступ к данным мыши, используйте низкоуровневый хук мыши, а не libusb. Если вы действительно хотите использовать формат сообщения USB HID, вы можете использовать драйвер фильтра для получения копии каждого запроса и ответа, который Windows получает от устройства.

Другие вопросы по тегам