AutoItSetOption("WinTitleMatchMode", 4)
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
$windowname="World of Warcraft"
$handle = WinGetHandle($windowname, "")
If @error Then
MsgBox(4096, "Error", "Could not find the correct window")
Else
while 1
ControlSend($windowname,'','',"Hi")
sleep(1500)
WEnd
Func TogglePause()
$Paused = Not $Paused
While $Paused
sleep(100)
WEnd
EndFunc
Func Terminate()
Exit 0
EndFunc
EndIf
Beim starten kommt die meldung:
Line 16 (XXXXXXXX) :
Func TogglePause()
Error: "If" statement has no matching "EndIf" statement.
Global $Paused, $windowname = "World of Warcraft", $handle = WinGetHandle($windowname, "")
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
If $handle = "" or @error Then MsgBox(4096, "Error", "Could not find the correct window") Else while 1 ControlSend($windowname,'','',"Hi") sleep(1500) WEnd EndIf
Func Terminate() Exit EndFunc
Func TogglePause() If $Paused = False then $Paused = True Elseif $Paused = True then $Paused = False Endif While $Paused = True sleep(100) WEnd Endfunc
so wie ich das sehe (verbesser mich wens falsch ist) ist das eine pause Funktion die ein und ausgeschalten werden (kann/sollte).
Sie lässt sich jedoch nur ein und nicht mehr abschalten da $Pause in der While Schleife nicht mehr abgefragt wird ändert sich der Zustand auch nicht mehr.
Du musst dort in die Schleife eine Abfrage einbauen
hotkeys funktionieren in autoit als interrupts. dh das script springt aus der aktuellen schleife/funktion/abfrage, führt die hotkey funktion aus, und setzt die schleife/funktion/abfrage weiter fort.
dh, wird die pausefunktion aufgerufen, so wird der $pause zustand neu gesetzt, und die schleife wird mit dem neuen $pause zustand fortgesetzt. womit der schleifenkopf bei $pause=false direkt aus der schleife springt.
dennoch ist diese, unnötig komplizierte variante einer pause funktion, sehr ineffektiv und sollte immer durch eine einfache zustandswechselform, gepaart mit der zustandsabfrage in der main-schleife ersetzt werden.
HILFE HILFE HILFE MIT SjSro Startproblem 12/14/2009 - SRO Private Server - 4 Replies Hi Leute hab ein Problem mit SjSro wenn ich auf starten klicke kommt diese Meldung Sorry.Failed to execute Silkroad. bitte helfen hab anti virus aus geht immer noch nicht wo liegt das problem
thx schon mal im voraus
BITTE HELFEN BITTE
WILL UMBEDINGT ZOCKEN!!