Hilfe beim Script Stoppen

  • Hi AutoIt-Com,
    ich brauche ein wenig Hilfe, und zwar geht es darm, etwas was in einer While Schleife ständig wiederholt wird ("While $Zahl = 1") per Button oder Hotkey zu stoppen. Wie kann ich die vorher definierte While Schleife ändern, bzw. es hinbekommen das sie aufhört? Könnte ich einfach "$Zahl = 2", also praktisch die Variable umdefinieren? Oder hat jemand eine andere Idee, und ich denke nur wieder zu umständlich?

    Hilfe bitte,
    Fire

    Einmal editiert, zuletzt von Fire (10. März 2011 um 19:05)

  • Hallo.
    Wenn du schreibst "While $zahl = 1", dann kannst du die Schleife durch $zahl = 2 abbrechen.
    ExitLoop sollte aber auch funktionieren.
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Auf die Schnelle würde mir das einfallen:

    [autoit]

    If _IsPressed(...) Then Exitloop

    [/autoit]
  • Klappt nicht, habs jetzt so (ist nicht das Script, habs geschlossen und finds grad nichtmehr, ist ein Beispiel)

    [autoit]


    $Zahl = 1

    [/autoit][autoit][/autoit][autoit]

    While $Zahl = 1
    send("Dient nur als Beispiel")
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Case $Stop
    $Zahl = 2

    [/autoit]
  • Auf die Schnelle würde mir das einfallen:

    [autoit]

    If _IsPressed(...) Then Exitloop

    [/autoit]

    Wie genau wende ich das in meinem Beispiel an? Sorry ich stehe grade echt auf dem sprichwörtlichen Schlauch. X(
    Wenn du mein Beispiel einfach kurz zitieren könntest und das If... einbauen wäre ich dir echt dankbar. :S

  • Einfach mal auf "_IsPressed" klicken.
    Das wird hier im Forum mit der Online-Hilfe verknüpft und dort gibts gleich ein passendes Beispiel.

    Aber hier ist die Kurzform zu deinem Beispiel:

    [autoit]


    #Include <Misc.au3>

    [/autoit][autoit][/autoit][autoit]

    $Zahl = 1

    [/autoit][autoit][/autoit][autoit]

    While $Zahl = 1
    If _IsPressed("01") Then ExitLoop ; oder $Zahl = 0 statt ExitLoop... "01" = linke Maustaste
    WEnd

    [/autoit]
  • Wie wärs mit einer neuen Funktion die mit Hotkeyset ausgelöst wird?
    So kann die Funktion quasi überall stehen..
    Hier nen Beispiel:

    [autoit]

    HotKeySet("{esc}", "_ende")

    [/autoit][autoit][/autoit][autoit]

    $Zahl = 1

    [/autoit][autoit][/autoit][autoit]

    While $Zahl = 1
    Sleep(100)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"Weiter","Die Schleife wurde unterbrochen, $zahl ist nicht mehr 1")

    [/autoit][autoit][/autoit][autoit]

    Func _ende()
    $Zahl = 2
    EndFunc

    [/autoit]
  • @Fire Bitte keine Doppelposts. Es gibt nicht umsonst einen "Bearbeiten" Button unter deinen Beiträgen ;).
    Wie du _IsPressed verwendest steht auch in der Hilfe...

    [autoit]

    #include <Misc.au3>

    [/autoit][autoit][/autoit][autoit]

    While True
    If _IsPressed("20") Then ExitLoop
    WEnd

    [/autoit]
  • Funktioniert nicht, bei ExitLoop beendet es sich immer. Bei dem Ändern der Variable genauso.

    Das hier hab ich auch schon versucht, ging aber nicht!

  • Hallo Fire,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinem "Beispiel" in Post #5: wenn ich mir dass anschaue hast du es dringenst nötig die Hilfe durchzuarbeiten, denn was du da gepostet hast ist eine Zumutung da noch nicht einmal lauffähig. Wenn du nicht bereit bist ein lauffähiges Beispiel zu posten, solltest du dich auch nicht wundern, wenn du nur allgemeine Antworten bekommst,

    mfg autoBert