sleep

  • siehe hilfe, da steht das alles drin:

    Pause script execution.


    Sleep ( delay )


    Parameters

    delay Amount of time to pause (in milliseconds).


    also sleep(1000) = 1 Sekunde

  • Hallo!

    habe mir auch ein Tool gebaut (sleeptotime) daß soll einfach warten, bis z.B. am gleichen Tag die Uhrzeit 06:30 Uhr erreicht ist, bin ich schon drüber (weils z.B. schon 08:00 Uhr ist) sofort weitermachen.

    Wenn ich aber dann die aktuelle Uhrzeit auslese und daraus schließe:

    120 Minuten * 60 Sekunden * 1000 ist die Zeit die ich einem sleep unterjubeln muß, dann kommt in der praxis ziemlicher Schrott raus, das Programm läuft dann evtl. schon um 06:17 Uhr an!!!!
    (obwohl die Berechung korrekt war), wenn größere Zeitabstände (Stunden zu überbrücken sind, dann unbedingt ne Schleife bauen, die die Uhrzeit wieder vom System holt um sich wieder neu anzugleichen.

    Gruss

    German

    • Offizieller Beitrag

    Hallo

    eine Möglichkeit von vielen ist z.B. die mit sogenannten TimeTicks:

    Spoiler anzeigen
    [autoit]

    #include <date.au3>
    $ShowMessage = "22:10:00" ;HH:MM:SS
    $ShowMessage = StringSplit($ShowMessage, ":")
    $ShowMessage = _TimeToTicks($ShowMessage[1], $ShowMessage[2], $ShowMessage[3])
    While 1
    Sleep(100)
    If Number($ShowMessage) <= Number(_TimeToTicks()) Then ExitLoop
    WEnd
    Global $Hour, $Min, $Sec
    _TicksToTime($ShowMessage,$Hour,$Min,$Sec)
    MsgBox(0, "", "Es ist jetzt " & $Hour&":"&$Min&":"&$Sec & " oder später!")

    [/autoit]

    Mfg Spider

  • hey das prog ist ja saubere Arbeit mein freund!

    Leider tu ich mir mit dem verstehen von den ganzen befehlen noch etwas

    schwer. Könntest du vielleicht noch alles etwas erläutern, wie es funktioniert?

    Habe versucht mir eine arte warteschleife zu bauen:

    Code
    #include <date.au3>
    $verl_loop = "00:40:00"   ;HH:MM:SS
    
    
    While 1
    	Sleep(100)
    	If Number($verl_loop) <= Number(_TimeToTicks()) Then ExitLoop
    WEnd
    Global $Hour, $Min, $Sec
    _TicksToTime($verl_loop,$Hour,$Min,$Sec)

    Leider bleibt autoit nich in der warteschleife, bis 00:40:00 ist, sondern beendet sofort nach dem ausführen des programms. Also hab ich an der schleife wohl was verbockt.

    Einmal editiert, zuletzt von Flockes (6. Oktober 2007 um 00:29)