Используйте модуль Python win32api для управления играми Steam

Я делаю гироскопическую мышь. Сценарий драйвера считывает входные данные датчика и соответственно перемещает мышь с помощью команд win32api.

win32api.SetCursorPos((xStart-int(dh*xsensitivity),ypos))

Когда я открываю полноэкранную игру, например Counter Strike Source, мышь вообще не работает. Функция только входов щелчка, но они заставляют оружие направить прямо вниз и выполнить своего рода захват.

Есть ли какой-нибудь способ, которым я могу взаимодействовать с любым управлением мышью внутри игры?

1 ответ

Я не очень знаком с программированием для Windows, но я думаю, что видеоигра (Counter Strike) использует методы DirectInput (из DirectX) для чтения перемещений мыши. То есть он использует DirectInput для получения событий движения мыши, а Python win32api.SetCursorPos "деформирует" курсор в заданную позицию и не генерирует никаких промежуточных сообщений о перемещении.

Скорее всего, вам понадобится вызов API-интерфейса MS Win32 SendInput, чтобы создавать сообщения о перемещении мыши и помещать их в очередь событий на уровне операционной системы.

Если вы знакомы с технологиями.NET, вы можете попробовать использовать IronPython (интерпретатор Python, который может взаимодействовать со средой выполнения.NET). В этом случае проект "Симулятор ввода" в Codeplex имеет методы, определенные для помещения событий перемещения мыши в очередь ввода.

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