[Brauche Hilfe] While schleife beenden.

09/16/2012 10:37 Chemist.Service#1
Hey Leute, ich hab ein kleines Problem, und zwar lässt sich die While schleife die ich mit dem Start button starte nicht beenden, ich habe bereits gelesen das die Schleife die Gui blockiert allerdings bin ich noch sehr neu und weiß nicht wie ich das beheben soll, wär nett wenn mal einer eine gänginge Methode postet/erklärt.

Grüße

Quellcode:pimp:
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Fabi\Desktop\Autoit Scripts\Spambot\bettergui.kxf
$Form1 GUICreate("Form1"473146192124)
GUISetBkColor(0x5CD259)
$KeyLABEL GUICtrlCreateLabel("Chattaste:"8565217)
$KeyINPUT GUICtrlCreateInput("{Enter}"72567321)
$TimeLABEL GUICtrlCreateLabel("Zeitintervalle:"152566717)
$TimeINPUT GUICtrlCreateInput(""224569721)
$ChatLABEL GUICtrlCreateLabel("Spamnachricht:"8887817)
$ChatINPUT GUICtrlCreateInput(""888837721)
$Start GUICtrlCreateButton("Start"328566525)
$Stop GUICtrlCreateButton("Stop"400566525)
$Headline GUICtrlCreateLabel("Universal Spambot"88829333)
GUICtrlSetFont(-1248000"LCDMono2")
$Info GUICtrlCreateLabel("Info: Time in Milliseconds! (1second = 1000Milliseconds)"812039616)
GUICtrlSetFont(-1108000"LCDMono2")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Start
                        
While 1
            Send
(GUICtrlRead($KeyINPUT))
            
Send(GUICtrlRead($ChatINPUT))
            
Sleep(GUICtrlRead($TimeINPUT))
                        
Wend
        
Case $Stop
            
Exit

    EndSwitch
WEnd 
09/16/2012 10:53 H@CT0R#2
mit dem startbutton startest du doch garkeine while schleife?
falls die einzige whileschleife die ich dort sehe gemeint ist: diese behindert eigentlich nicht das script, sie fragt nur in einer endlosschleife ab, welcher button gedrückt wurde und führt dann dessen funktion (das was du unter case $buttonname schreibst) aus
falls das ganze ein spambot werden soll und die send-befehle die mit dem startbutton ausgeführt werden die ganze zeit gesendet werden sollen bis stop gedrückt wird, so müsstest du auch unter die start funktion eine endlosschleife (while 1 ... wend) einbauen, diese würde allerdings den rest des scriptes in dem sinne beheben, das die äußere while schleife nicht mehr abgefragt wird -> buttondrücke nicht mehr regisriert werden
das ganze sollte sich am einfachsten lösen lassen, wenn du im oneventmodus arbeitest, dann wird nurnoch eine while schleife benötigt
09/16/2012 10:54 Havelock_Vetinari#3
mit dem Startbutton wird keine while schleife gestartet ?!

Um eine While Schleife zu beenden , nutze
Code:
ExitLoop
Hi Yaazu^^
09/16/2012 10:55 Chemist.Service#4
Sry, mir is grade aufgefallen das ich eine falsche version des skripts gezeigt hab :D ich änder das mal, kannst du mir mal ein beispiel für einen OnEventModus geben ? wie gesagt, ich mach das seit gestern abend :D
09/16/2012 11:01 H@CT0R#5
würde zuallererst mal korrekt einschieben
Code:
While 1
   Send(GUICtrlRead($KeyINPUT))
   Send(GUICtrlRead($ChatINPUT))
   Sleep(GUICtrlRead($TimeINPUT))
Wend
damit würde er das eingegebene die ganze zeit senden, ohne berücksichtigung der anderen buttons
um dir eine einsteigerfreundliche lösung zu zeigen: arbeite mit hotkeys (HotKeySet ("taste", "funktion")) (weitere hilfe findest du in der autoit hilfe)
einfach eine taste als hotkey festlegen und sie die funktion exit mit dem inhalt exit ausführen lassen ;)
09/16/2012 11:10 Chemist.Service#6
Danke, das mit den Hotkeys hat geklappt.

Hier die Lösung für die Leute die das gleiche Problem haben:

Code:
Hotkeyset("{F10}","kill")
func kill()
	Exit
Endfunc