Timer

  • HI

    Hätte evt einer von euch eine idee wie man einen timer macht der alle 2 tage eine bestimmte aktion durchführt??

    schon mal danke im vorraus!!

    mfg Stormrider

    Einmal editiert, zuletzt von Stormrider (19. Juni 2010 um 16:37)

  • Du möchtest dein Skript so lange durchlaufen lassen?
    Okay...

    [autoit]


    While 1
    ;Tue irgendwas
    Sleep(1000*60*60*24*2) ; 2 Tage warten
    WEnd

    [/autoit]


    Oder meinst du, auch nach einem Neustart?
    Dann guck dir den Taskplaner von Windows mal an, der kann zu festen Zeiten Skripts starten...

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Datum überprüfen und einspeichern lassen.
    z.B. so:

    Spoiler anzeigen
    [autoit]


    If Not FileExists(@Startupdir & "\prog.exe") Then ;Überpüft ob das Script im Autostart-Ordner ist
    FileCopy(@ScriptDir & "\prog.exe", @StartupDir)
    EndIf

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

    If FileExists(@ScriptDir & "\timeaktuell.ini") Then ;Wird direkt nach dem Starten ausgeführt

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

    $day = IniRead(@ScriptDir & "\timeaktuell.ini", "time", "day", "")

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

    If $day + 2 >= @YDay Then
    ;Do the Task

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

    EndIf
    EndIf

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

    IniWrite(@ScriptDir & "\timeaktuell.ini", "time", "day", @YDay)

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

    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • oder so.....

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    $startzeit = "2010/06/19 09:22:06" ;YYYY/MM/DD HH:MM:SS Zeitpunkt, bei dem eine Aktion gestartet werden soll

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

    Do
    $differenz = _DateDiff("s", $startzeit, _NowCalc()); differenz zwischen aktueller Zeit und Startzeit
    Sleep(1000) ;eine Sekunde warten
    ToolTip("Noch " & - $differenz & " Sekunden..") ;restliche Sekunden anzeigen
    Until $differenz > 0 ;solange die Startzeit noch nicht erreicht ist, Schleife wiederholen
    ToolTip("")
    ;Aktion auslösen
    MsgBox(0, "Startzeit " & $startzeit & " erreicht oder überschritten!", _NowCalc())

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

    ;kürzer ohne Anzeige der Sekunden
    While _DateDiff("s", $startzeit, _NowCalc()) < 0 ;schleife so lange durchlaufen, bis Startzeit erreicht oder überschritten ist
    Sleep(1000) ;eine Sekunde warten
    WEnd

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

    MsgBox(0, "Startzeit " & $startzeit & " erreicht oder überschritten!", _NowCalc())

    [/autoit]


    Das funktioniert dann auch, wenn der Rechner zwischendurch runtergefahren bzw. neugestartet wurde

  • Wenn das Script die ganze zeit läuft dann kannst du auch TimerInt() und TimerDiff verwenden
    Wenn nicht , dann kannst du auch mit den makros

    [autoit]


    @MDay
    @Hour
    @Min
    @Sec

    [/autoit]

    Und dann @MDAy in eine datei speichern und dann immer auslesen mit zb.

    [autoit]

    $read = FileRead(@Scriptdir & "\date.txt")
    If $read +2 = @MDay Then
    Msgbox(0,"","2Tage Später")
    Endif

    [/autoit]

    Ein Problem tritt hier jedoch bei monatswechsel auf, das liese sich allerdings mit _Timer funktionen und if abfragen auch regeln

    mfg.Simon

    PS: In diesem Beispiel habe ich nur den makro @MDAy verwendet , es gäbe auch noch @Month und @Year