Starten/Pausieren mit derselben Taste

  • Hallo :)

    Ich habe folgende Frage:

    Wie kann man ein Script mit derselben Taste pausieren und anschliessend wieder starten?
    Bin noch ein totaler Newbie und würde mich über jegliche Hilfe freuen :)


    [autoit]

    HotKeySet("{F6}", "_Start")
    HotKeySet("{F7}", "_Pause")
    HotKeySet("{F8}", "_Exit")

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

    Global $Pause

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

    while 1

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

    sleep(10)

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

    WEnd

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

    Func _Start () ; Startet das Script

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

    MsgBox( 0 , "Info" , "Script gestartet" )

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

    EndFunc

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

    Func _Pause () ; Pausiert das Script / Startet das Script

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

    $Pause = Not $Pause

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

    while 1

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

    sleep(10)

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

    Wend

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

    EndFunc

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

    Func _Exit () ; Beendet das Script

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

    Exit

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

    EndFunc

    [/autoit]


    Das ist mein Versuch :)


    MfG
    b0nk3rs0

    PS: & Nein, es handelt sich nicht um einen Bot!

    2 Mal editiert, zuletzt von b0nk3rs0 (22. Oktober 2011 um 22:28)

  • in der Regel hat der Fragende schon in gewisser Weise versucht selbst eine Lösung zu finden
    und stellt uns seine bisherigen Versuche in Form eines Scriptes bereit.

    Ich würde mir mal HotKeySet ansehen und das in eine Funktion packen ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    • Offizieller Beitrag

    Schau dir das Beispiel von HotKeySet an.

  • Ok, Danke für den Hinweis, werde dies in den nächsten Posts beachten :)

    Ja, das habe ich mir schon angesehen, aber nicht ganz verstanden..
    Vielen Dank für eure Hilfe schonmal :'D

    b0nk3rs0

    • Offizieller Beitrag

    Ich hab dich mit der Nase drauf gestoßen, trotzdem mußt du die Pausefunktion des Beispiels verhunzen. 8|

    Spoiler anzeigen
    [autoit]

    #region - Timestamp
    ; 2011-10-22 22:43:34
    #endregion - Timestamp

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

    HotKeySet("{F6}", "_Start")
    HotKeySet("{F7}", "_Pause")
    HotKeySet("{F8}", "_Exit")

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

    Global $Pause

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

    While 1

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

    Sleep(10)

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

    WEnd

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

    Func _Start() ; Startet das Script
    $i = 1
    While 1
    ToolTip("Hier läuft was " & $i)
    $i += 1
    WEnd
    EndFunc ;==>_Start

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

    Func _Pause() ; Pausiert das Script / Startet das Script

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

    $Pause = Not $Pause

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

    While $Pause

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

    Sleep(10)

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

    WEnd

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

    EndFunc ;==>_Pause

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

    Func _Exit() ; Beendet das Script

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

    Exit

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

    EndFunc ;==>_Exit

    [/autoit]
  • Ich weiss, ihr werdet mir nicht glauben, aber ich habe mein Script völlig unabhängig von dem HotKeySet-Script geschrieben...
    Naja klingt jetzt ein wenig unglaubwürdig, aber ich habe mir dies erst anschliessen angeschaut.

    Das ist ja fast 1:1 S:

    • Offizieller Beitrag

    Verarschen kannst du jemand anders. Du hast dein Script 12 Minuten nach meinem 1 Post reineditiert..

  • ja, hab aber mein Script reineditiert, bevor ich das HotKeySet-Script gelesen habe..
    Naja, jetzt wird mir eh niemand mehr glauben..

  • Zitat

    Naja, jetzt wird mir eh niemand mehr glauben..


    Du gibst Dir aber auch alle Mühe dazu ;)

    Als kleinen Tip würde ich sagen:
    Da du einen wechselnden Zustand abfragen/ausführen willst,
    empfiehlt sich dazu ein Boolean.
    D.h. erstelle Dir eine Variable (z.B. $bStatus) und gib Ihr den Wert $bStatus = "True".
    Jedes mal, wenn Du in Deiner Funktion den Zustand ändern willst "switcht" du den Wert der Variable
    mit : $bStatus = Not $bStatus (Achtung, das ist nur eine Variable, deren Zustand Du in deiner Funktion abfragen kannst, um die entsprechende Aktion auszuführen)

    Beispiel:

    [autoit]

    Global $bStatus = True

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

    HotKeySet("!q", "Status_aendern"); Test mit Alt & q
    HotKeySet("{Esc}", "_Exit"); Esc beendet das Script

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

    While Sleep(10)

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

    WEnd

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

    Func Status_aendern()
    If $bStatus = True Then
    MsgBox(0, '', 'Der Status ist "wahr".')
    ;hier kann dann die Ausführung der Änderung rein
    Else
    MsgBox(0, '', 'Der Status ist "nicht wahr".')
    ;hier kann dann die Ausführung der Änderung rein
    EndIf
    $bStatus = Not $bStatus ; Status der Variable switchen
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)