Brauche Hilfe [GUI]

02/26/2012 20:06 piper332#1
Code:
#include <GUIConstants.au3>
#RequireAdmin
Global $Pause, $counter = 0, $pcounter = 0

GUICreate("NosBot")

Opt("GUICoordMode",2)
$BotStart = GUICtrlCreateButton ("Starte Bot",  10, 30, 100)
$BotPause = GUICtrlCreateButton ("Pause",  0, -1)
$BotEnde = GUICtrlCreateButton("Beenden",0, -1)

GUISetState ()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $BotStart
	            $pcounter = 0
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Sleep(225)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Sleep(210)
	Send("{Space}")
	Sleep(224)
        Case $msg = $BotPause
				ToolTip("Pausiert", 0, 0, 0, 2)
				Sleep(1000)
			
		Case $msg = $BotEnde
			Exit
    EndSelect
Wend
Ich hoffe ihr könnt mir weiterhelfen :)
Ich wollte wissen, wie ich das machen muss, dass wenn ich den Starten Button drücke und dann der Bot läuft und dann den Pause Button drück der auf Pause Springt und nich bei Starten bleibt.
02/26/2012 20:21 lolkop#2
Quote:
Originally Posted by piper332 View Post
Code:
#include <GUIConstants.au3>
#RequireAdmin
Global $Pause, $counter = 0, $pcounter = 0

GUICreate("NosBot")

Opt("GUICoordMode",2)
$BotStart = GUICtrlCreateButton ("Starte Bot",  10, 30, 100)
$BotPause = GUICtrlCreateButton ("Pause",  0, -1)
$BotEnde = GUICtrlCreateButton("Beenden",0, -1)

GUISetState ()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $BotStart
	            $pcounter = 0
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Sleep(225)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Sleep(210)
	Send("{Space}")
	Sleep(224)
        Case $msg = $BotPause
				ToolTip("Pausiert", 0, 0, 0, 2)
				Sleep(1000)
			
		Case $msg = $BotEnde
			Exit
    EndSelect
Wend
Ich hoffe ihr könnt mir weiterhelfen :)
Ich wollte wissen, wie ich das machen muss, dass wenn ich den Starten Button drücke und dann der Bot läuft und dann den Pause Button drück der auf Pause Springt und nich bei Starten bleibt.
arbeite ohne sleeps. diese blockieren dein script, und verhindern, das deine gui commands überhaupt erkannt werden können
02/26/2012 20:29 piper332#3
Okay so komme ich schonmal bei mehrmaligen drücken vom starten in die pause, aber kann man das nicht noch besser lösen, weil der soll ja nicht 50 mal oder öfter in einer sekunde die leertaste drücken und es sollte ja reibungslos in den pausezustand gehen also ohne mehrmaligen drücken
Bis jetzt hab ich das dann so:
Code:
#include <GUIConstants.au3>
#RequireAdmin
Global $Pause, $counter = 0, $pcounter = 0

GUICreate("NosBot")

Opt("GUICoordMode",2)
$BotStart = GUICtrlCreateButton ("Starte Bot",  10, 30, 100)
$BotPause = GUICtrlCreateButton ("Pause",  0, -1)
$BotEnde = GUICtrlCreateButton("Beenden",0, -1)

GUISetState ()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $BotStart
	            $pcounter = 0
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
        Case $msg = $BotPause
				ToolTip("Pausiert", 0, 0, 0, 2)
			
		Case $msg = $BotEnde
			Exit
    EndSelect
Wend
02/26/2012 20:37 lolkop#4
für die verzögerungen gibt es timer.

du hast in deinem script ja schon einen $pause zustand eingebaut.
wenn du diesen jetzt noch nutzen würdest, dann würde dein script auch funktionieren.

beispiel:
Code:
Dim $pause=True

GUICreate([...])
$pauseButton = GuiCtrlCreateButton('Pause', [...])
$startButton = GuiCtrlCreateButton('Start', [...])
[...]

While True
    Switch GuiGetMsg()
        Case -3
            Exit
        Case $pauseButton
            $pause = True
        Case $startButton
            $pause = False
        [...]
    EndSwitch

    If Not $pause Then
        <deine script commands>
    EndIf
Wend
02/26/2012 20:44 piper332#5
okay ich versuchs einmal
gibt ein thx ;)
wenns nich klappt poste ich es hier nochmal ^^

Okay jz hab ich das so weit:
Code:
#include <GUIConstants.au3>
#RequireAdmin
Global $counter = 0, $pcounter = 0
Dim $Pause= true

GUICreate("NosBot")

Opt("GUICoordMode",2)
$BotStart = GUICtrlCreateButton ("Starte Bot",  10, 30, 100)
$BotPause = GUICtrlCreateButton ("Pause",  0, -1)

GUISetState ()

While true
    Switch GUIGetMsg()
        Case -3
            Exit
		Case $BotPause
			$pause= true
			
        Case $BotStart
			$pause = False
	EndSwitch
		
	If Not $pause Then
		$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
	$counter += 1
	ToolTip('Bot "laeuft" [Esc beenden, F8 Pausieren, F10 Counter reset]', 0, 0, $counter, 1)
	Send("{Space}")
	EndIf
Wend
aber ich muss ja wieder voll oft drücken, bis der bot mal anhält.. geht das nicht, dass die tasten in einem gewissen abstand gedrückt werden und nicht so schnell?

Quote:
Originally Posted by lolkop View Post
für die verzögerungen gibt es timer.
ist das nicht das selbe wie sleep? :confused:
02/28/2012 18:51 piper332#6
._. kann mir denn keiner helfen?
02/28/2012 19:26 bollen#7
Wenn du einen timer verwendest wird dein Programm nicht angehalten sondern läuft weiter und führt die Aktion erst nach einer abgelaufenen Zeit aus. Das könnte dan so aussehn
€: Die Variable $sleeptime beinhaltet die Zeit in Millisekunden die gewartet werden soll