da du nach verbesserungs vorschlägen fragtest, hier mal ein par tips:
Code:
GUICreate("Pinball-BoT", 264, 175)
GUICtrlCreateLabel("Press START BOT to start Pinball-BoT Press e to End Bot", 30, 40, 200, 50)
$Button1 = GUICtrlCreateButton("Start Bot", 150, 120, 89, 25)
GUISetState(@SW_SHOW) <--- unnötig
$Button2 = GUICtrlCreateButton("End Bot" ,30, 120, 89, 25)
GUISetState(@SW_SHOW) <--- einmal state setzen reicht doch vollkommen
Code:
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <misc.au3>
keines dieser includes wird von dir genutzt. also wozu etwas ins script packen, was nicht gebraucht wird?
Code:
While 1
[...]
While 1
[...]
Endlosschleife in Endlosschleife = ganz schlechte idee.
Diese Schleife setzt alles andere in deinem script ausser funktion.
WEnd
[...]
WEnd
desweiteren solltest du noch alle sleep befehle durch timer ersetzen. jeder sleep befehl blockiert dein script.
und wie bereits erwähnt wurde, kannst du das "down" bzw "up" beim send weglassen. das spiel erkennt das übrigens sowieso nicht. beide formen werden als normales send anerkannt.
Code:
Send("{Y down}")
Sleep(100)
Send("{Y up}")
wird von pinball so interpretiert:
Code:
Send("Y")
Sleep(100)
Send("Y")
das liegt darann das autoit automatisch send befehle abschließt, sobald ein anderer befehl dezwischen liegt.
zuletzt bleibt noch zu sagen, dass funktions definitionen immer deutlich abgetrennt vom restlichen code liegen sollten. und noch wichtiger ist, dass sie niemals in schleifen liegen
Code:
While 1
[...]
Func End()
send("!{F4}")
Exit
EndFunc
[...]
WEnd
ist ein absolutes nogo.
bei jedem schleifendurchlauf wird eine neue funktion mit dem selben name definiert, die wieder einen neuen speicherbereich einnimmt.