Pywin32のキーボード制御を使用してジョイスティック(ゲームパッド)を制御しようとしたがうまくいかなかった。
そもそもWin32APIはジョイスティックの情報を読み込めるが、制御はできないようだ。
Joysticks
joystickapi
pyvjoy
pyvjoyを使用する。pyvjoyはバーチャルジョイスティックソフトvJoyのpythonラッパー。
vJoyのSDKからvJoyInterface.dllを持ってくる必要がある。
しかし結局Getting vJoyNotEnabledExceptionというエラーがでて先に進まなかった。
代替策
gistで同じくvJoyのpythonラッパーを作成している方がいた。
https://gist.github.com/Flandan/fdadd7046afee83822fcff003ab47087
https://gist.github.com/varlen/c47e807e647cc56a6faf9d548d2c00f3
動作確認はvJoyのvJoy Monitorを使った。
ジョイスティックにシグナルを送るコードとしてはTwitchPlaysXのkey.pyが参考になった。
Sending Joystick input to program using python
→pygameではジョイスティックのシグナルを送ることができない
Direct Input to Game – Python Plays GTA V
→キーボードによるインプット
Simulate Python Gamepad Inputs for Controlling a Game
→情報なし
Simulating gamepad hardware signals
→キーボードによるインプット
Simulate Gamepad Key Presses in Python
Simulate XBox Controller Input with Python
→pyvjoyの説明あり
コメントで操作するやつ