While schleife beenden mit Button

02/14/2012 17:37 BladeTiger12#1
Erst mal Abend leute:)
Und hier schon mein Problem:
Ich weiß wie man eine While schleife beenden
mit ExitLoop.
Aber wie beende ich es mit einem anderen button?
02/14/2012 17:46 jacky919#2
Deklarier eine globale Variable, bst: $bRunning und setze sie auf True.
Wenn du die Schleife folgerndermaßen einbaust, sollte sie solange laufen wie $bRunning wahr ist
PHP Code:
While $bRunning
;Code hier
WEnd 
Um die Schleife nun zu beenden kannst du $bRunning auf False setzen und die Schleife sollte terminieren. Ich hoffe, dass ich richtig verstanden habe was du wolltest...
02/14/2012 18:52 BladeTiger12#3
Also z.b so:
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $Switch True

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Spamm"18058312231)
$Input1 GUICtrlCreateInput(""24012121)
$Button1 GUICtrlCreateButton("Start"0327525)
$Button2 GUICtrlCreateButton("Stop"104327525)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            _Spamm
()

    EndSwitch
WEnd

Func _Spamm
()
    
$Text1 GUICtrlRead($Input1)
    If 
$Text1 "" Then
        MsgBox
(16 "Fehler!" "Fehler! TextBox ist leer!")
    EndIf
    While 
$Switch
        Send
($Text1)
        
Sleep(1000)
    
WEnd
EndFunc

Func _Stop
()
    
$Switch False
EndFunc 
Das geht aber auch nicht :D
02/14/2012 19:03 Njahs#4
Quote:
Originally Posted by BladeTiger12 View Post
Also z.b so:

[...]

Das geht aber auch nicht :D
Und wo rufst du die _Stop() funktion auf?

Btw.
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Hotkeyset("{F5}","_Stop")

Global 
$Switch True

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Spamm"18058312231)
$Input1 GUICtrlCreateInput(""24012121)
$Button1 GUICtrlCreateButton("Start"0327525)
$Button2 GUICtrlCreateButton("Stop"104327525)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            _Spamm
()

    EndSwitch
WEnd

Func _Spamm
()
    
$Text1 GUICtrlRead($Input1)
    If 
$Text1 "" Then
        MsgBox
(16 "Fehler!" "Fehler! TextBox ist leer!")
    Else
    While 
$Switch True
        Send
($Text1)
                If 
NOT $Switch True then Exitloop
        Sleep
(1000)
    
WEnd
        
Endif
EndFunc

Func _Stop
()
    
$Switch False
EndFunc 
02/14/2012 19:05 BladeTiger12#5
Vielen dank :d
Das wollte ich :)
Und noch eine frage....
Da man den Spamm öffters benutzten können soll
muss man das wieder auf True machen wie geht das ? :D
Könnte mir ja bitte jemand helfen

#Edit : Sorry ich habs jetzt :) Trotztdem Danke
02/14/2012 19:49 lolkop#6
du bist doch schon in einer endlosschliefe...

Code:
while true
    switch guigetmsg()
        [...]
    endswitch
    if $zustand1 = true then function1()
    [...]
    if $zustandN = true then functionN()
wend
dieser codeschnipsel sollte für alle N element der natürlichen zahlen funktionieren...

in der switch abfrage für guigetmsg() kannst du dann beliebigen controls die aufgabe geben, die zustände zu ändern...