Pause geht nich aus

07/20/2010 22:06 ooOPhoenixXxx#1
Hi Leute,

vorab erst mal ich bin noch Anfänger was AutoIt angeht also bitte kein Fach-bla-bla;)

also ich hab mir erlaubt mich mal an einem kleinem bot zu versuchen: von wegen tränke einsetzen während ich kämpfe. in den bot wollte ich allerdings eine Pausetaste einbauen. nunja eine Pause bekomm ich hin (steht ja zur not im Helpfile) aber das Problem das ich jetzt hab ist ganz einfach das ich mit der dafür vorgesehenen taste die pausen nicht beenden kann.Klar mit dem hotkey gehts aber naja... hier mal der Code den ich bisher hab:

Code:
#include <GUIConstants.au3>

Global $Paused
HotKeySet("{Esc}", "Stop")
HotKeySet("{Pause}","PauseText")

...

Func Pause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
    WEnd
EndFunc

Func PauseText()
	If $Paused = True Then
		MsgBox (32, "Pause", "Der Bot ist Wieder Aktiv")
	Else
		MsgBox (32, "Pause", "der Bot kann nur über die Pause Taste der Tastatur wieder Aktivirt Werden")
	EndIf
	Call ("Pause")
EndFunc

Func Stop()
	Exit
EndFunc

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $ButtonStart
			Call ("Start")
		Case $ButtonPause
			Call ("PauseText")
		Case $ButtonStop
			Call ("Stop")

	EndSwitch
WEnd
kann mir da vielleicht einer von euch helfen?
(wenn nich lass ich die Pause-Taste einfach weg aber ich fänds schade drum)

MfG: Phönix
07/21/2010 03:20 PenGuin :O#2
Habs dir mal eingebaut, statt den Punkten einfach deine GUI einfügen, frag nicht nach Windowsmessages, zu kompliziert :P
Und falls sonst Fragen weiterhin existieren, frag einfach.

Code:
#include <WindowsConstants.au3>
#include <GUIConstants.au3>

Global $bPaused = False
HotKeySet("{Esc}", "Stop")
HotKeySet("{Pause}","HotKeyPause")

...
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $ButtonStart
			Start()
		Case $ButtonStop
			Stop()
	EndSwitch
WEnd

Func PauseText()
	If $bPaused = False Then
		MsgBox (32, "Pause", "Der Bot ist Wieder Aktiv")
	Else
		MsgBox (32, "Pause", "der Bot kann nur über die Pause Taste der Tastatur wieder aktiviert Werden")
	EndIf
EndFunc

Func Stop()
	Exit
EndFunc

Func HotKeyPause()
             $bPaused = Not $bPaused
             AdlibRegister("_Stop", 10)
EndFunc

Func WM_COMMAND($hWnd, $nMsg, $wParam, $lParam)
	Local $hButton = $ButtonPause
	$hButton = GUICtrlGetHandle($hButton)
	If $lParam = $hButton Then
		$bPaused = Not $bPaused
		AdlibRegister("_Stop", 10)
	EndIf
EndFunc   ;==>WM_COMMAND

Func _Stop()
	AdlibUnRegister("_Stop")
	While $bPaused And Sleep(10)
		If GUIGetMsg() = -3 Then Exit
	WEnd
EndFunc   ;==>_Stop
07/21/2010 03:50 ooOPhoenixXxx#3
... naja ich hab zwar kein Wort verstanden :confused: und durch das Script blick ich auch noch nicht so richtig durch, aber das wird sich wahrscheinlich noch ergeben wenn ich mich erst mal ein paar Monate (oder Jahre?^^) mit AutoIt befasst habe :rolleyes:.

jedenfalls funktioniert es jetzt aber eine frage währe da noch: er sollte mir doch eigentlich eine Nachricht geben wenn er in den Pausemodus bzw. aus dem Pausemodus raus geht. irgendwie fehlt mir das^^. ich glaub es is klar was ich möchte oder?^^ (würds ja selbst machen aber wie gesagt ich blick noch nicht so ganz da durch.)

würdest auch ein Thanks bekommen :handsdown:
07/21/2010 04:41 PenGuin :O#4
Gib mir dazu mal deine GUI die du mit den 3 Punkten maskiert hast. Kannst es auch per PM machen, dann kann ich das alles nämlich direkt einbauen, keine Lust ein eigenes Beispielscript zu bauen :)