Guten Tag zusammen,
seit einiger Zeit bin ich Besitzer eines einfachen Gamepads. Bei den meisten Spielen kann ich die Tasten nach meinen Wünschen belegen. (Das Gamepad ähnelt einem Playstation Controller, leider sind ständig Tasten vertauscht.)
Jetzt habe ich ein Spiel erwischt, bei dem ich den Controller nicht neu belegen kann. Einige Tasten sind vertauscht. Die Start Taste hat momentan überhaupt keine Funktion. Ich habe auch schon nach .ini's für Controller Input Ausschau gehalten, ohne Erfolg.
Ein Beispiel: Button Select entspricht derzeit Button Start. Das Menü wird also bei Druck auf Select geöffnet und bei Druck auf Start passiert nichts.
Nun möchte ich gerne über ein Script erreichem, dass z.B. Button Start -> Button Select entspricht.
Die _Joystick.au3 von Ejoc - diese bekommt die gets über die Winmm.dll - gibt mir Informationen über gedrückte Buttons. Ich habe z.B. einen Knopft mit einer Media-Taste belegt, die dafür sorgt, dass das Aktuelle Lied im Audio-Player übersprungen wird. Ich schaffe es also Virtual-Key Codes und normale send's auszuführen.
Spoiler anzeigen
$leftstick = 0
while 1
$coord=_GetJoy($joy,0)
If $coord[7] = "1024" Then
$leftstick = 1
EndIf
If $coord[7] <> "1024" Then
if $leftstick = 1 Then
_Send_Virtual_Key(0xB0)
$leftstick = 0
EndIf
EndIf
WEnd
$lpJoy=0 ; Joyclose
1024 = linker Analogstick
256 = Select-Taste
512 = Start-Taste
0xB0 = Virtual Key für die "Next Track" Taste
von Melba23:
[autoit]Func _Send_Virtual_Key($iCode)
If Not IsInt($iCode) Then Return
DllCall('user32.dll', 'int', 'keybd_event', 'int', $iCode, 'int', 0, 'int', 0, 'ptr', 0)
DllCall('user32.dll', 'int', 'keybd_event', 'int', $iCode, 'int', 0, 'int', 2, 'ptr', 0)
EndFunc
Aber wie kann ich einen "Joystick send" ausführen?
Ich quäle mich damit seit Tagen. Ich habe bereits sämtliche autoit.de und autoitscript.com Posts über Joysticks gelesen.
Eine Lösung würde mich defenitiv glücklich machen.