2015-11-10 7 views
1

Я ищу, чтобы написать программу для изменения настройки DPI на моей мыши Logitech G502 (моя цель - использовать программу с AutoHotkey, чтобы помочь автоматизировать задачу, когда я переключаю свой DPI-ресурс и немного узнаю о USB). Я довольно свободно владею C++, C# и python. Но я ничуть не осведомлен о USB или драйверах.Связь с устройствами USB в Windows 7 и использование ранее существующих драйверов?

До сих пор я использовал программу USBlyser для идентификации передачи управления, отправленной на мышь, при использовании программного обеспечения Logitech, байт данных соответствует моей настройке DPI, а также идентификатор продукта и идентификатор поставщика моей мыши.

Осмотревшись в сети, я решил, что PyUSB станет хорошим вариантом для общения с моей мышью. После установки libUsb для использования с PyUSB я понял, что это заменяет мой текущий драйвер мыши и делает его непригодным.

Я просто все об этом не так? В моей голове все, что я хочу сделать, это отправить на мой компьютер данные «10 FF 0E CA 01 00 00», вместо этого я должен как-то обмениваться данными с моим существующим драйвером logitech для этого? Или я могу настроить libUsb без вмешательства в существующие драйверы?

Любая помощь будет оценена, приветствует Брэдли.

ответ

1

libusb не мешает никому. В PyUSB вы решите напрямую связаться с устройством. Для этого необходимо остановить любое другое приложение с этим USB-портом. Драйвер Windows в корпусе для мыши.

Я думаю, что вы можете нажать код активации DPI, пока драйвер по-прежнему использует мышь, но как, я понятия не имею.

Или вы можете временно отсоединить мышь, передать код, а затем отпустить мышь обратно в Windows, надеясь, что конфигурация DPI не будет сброшена.

Если это не пройдет, вы всегда можете полностью эмулировать драйвер мыши. Это очень просто.

Есть примеры кода для PyUSB в Интернете о том, как интерпретировать данные мыши. Таким образом, вы делаете это, и вы передаете признанную команду в ОС либо напрямую через Windows API, либо используя библиотеку PyMouse.

В этом случае вам не нужен драйвер, потому что ваша программа одна, и она посылает на мышь все, что вы хотите.

У вас есть много вариантов, как делать то, что вы хотите.

Например, если это только для вашего локального использования, и интерфейс уже делает то, что вы хотите, автоматизируйте этот интерфейс, используя pywinauto, чтобы выполнить макрос, чтобы активировать/отключить более высокий DPI.

Есть больше возможностей.

Вы можете заменить Windows-драйвер своей собственной версией, которая будет поддерживать то, что вы пожелаете, тем самым создавая свой собственный слой в стеке мыши. Но это экстремально.

Я думаю, вы должны начать, чтобы я писал:

  1. Смотрит ли вы можете использовать PyUSB для отправки байт, необходимых без отсоединения мыши от ОСА

  2. Если нет, то ли отсоединение мыши, изменяя DPI и возврат назад к ОС с помощью PyUSB поддерживает заданный DPI.

3,1 Если нет, то сделать свой собственный искусственный драйвер с помощью PyUSB и PyMouse

или

3.2 Использование pywinauto автоматизировать существующий интерфейс для изменения DPI для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^