Pause resume function

  • Moin bkomme das nicht gebacken.
    Wenn ich die Taste für Pause drücke Killt er einfach denn Script.

    [autoit]


    #include <Misc.au3>
    ;;Hex
    ;;79 = F10
    ;;7A = F11
    ;;7B = F12

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

    HotKeySet("{F11}","_pause")
    HotKeySet("{F12}","_exit")

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

    While 1
    If _IsPressed(79) Then
    _testfunc()
    EndIf
    WEnd

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

    ;;Awake Func
    Func _testfunc()
    While 1
    ;;hier sollte der eigendliche inhalt rein
    WEnd
    EndFunc

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

    ;; Pause/Resume
    Func _pause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    EndFunc
    ;;Exit
    Func _exit()
    Exit 0
    EndFunc

    [/autoit]

    Solange ich kein Pause drücke geht der Script ohne Probleme aber so bald Script killed
    ich kann mir denn Fehler denken aber hab keine ahnung wie ich in lösen kann.

    Einmal editiert, zuletzt von Mc.Neal (13. Mai 2010 um 10:53)

  • nur wie deklarier ich das?
    da kommt der hänger finde per google und sufu keine ähnliche situation

  • Hallo deklariere doch einfach $Paused am Anfang als false:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    ;;Hex
    ;;79 = F10
    ;;7A = F11
    ;;7B = F12

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

    Global $Paused = False

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

    HotKeySet("{F11}","_pause")
    HotKeySet("{F12}","_exit")

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

    While 1
    If _IsPressed(79) Then
    _testfunc()
    EndIf
    WEnd

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

    ;;Awake Func
    Func _testfunc()
    While 1
    ;;hier sollte der eigendliche inhalt rein
    WEnd
    EndFunc

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

    ;; Pause/Resume
    Func _pause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    EndFunc
    ;;Exit
    Func _exit()
    Exit 0
    EndFunc

    [/autoit]

    mfg (Auto)Bert

  • Das mit der Deklar versteh ich selbst durch das Tutorial nicht, und mit Global $Pause haut auch nicht hin. Da fängt er von vorne an, nur ohne das ich ein keine Taste drücken muss

  • Hallo Mc.Neal,

    hast du mein Skript getestet es funktioniert, hier noch einmal mit Kommentaren:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    ;;Hex
    ;;79 = F10
    ;;7A = F11
    ;;7B = F12

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

    Global $Paused = False ;setze $Paused auf falsch

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

    HotKeySet("{F11}", "_pause")
    HotKeySet("{F12}", "_exit")

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

    While 1
    If _IsPressed(79) Then ;nur wenn F10 gedrückt
    _testfunc()
    EndIf
    WEnd

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

    ;;Awake Func
    Func _testfunc()
    While 1
    ;;hier sollte der eigendliche inhalt
    ;dieser wird nur ausgeführt wenn Skript nicht pausiert und auch die F10-Taste gedrückt wird
    ConsoleWrite("Aktion wird ausgeführt!" & @CRLF)
    Sleep(5000)
    WEnd
    EndFunc ;==>_testfunc

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

    ;; Pause/Resume
    Func _pause()
    $Paused = Not $Paused ;$Paused wird zum Gegenteil, also wenn bereits pausiert wird weitergemacht ansonsten pausisiert
    While $Paused
    Sleep(100)
    ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")
    EndFunc ;==>_pause
    ;;Exit
    Func _exit()
    Exit 0
    EndFunc ;==>_exit

    [/autoit]

    ansonsten liegt unterumständen der Fehler in deiner eigentlichen testfunc

    mfg (Auto)Bert