Используйте модуль 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 имеет методы, определенные для помещения событий перемещения мыши в очередь ввода.