Skript zeitgesteuert laufen lassen?

  • Moin!

    Hab' da mal wieder eine Frage:

    Ich habe ein kurzes Tool für private Zwecke geskriptet, welches regelmäßig (alle 5 Min.) mit InetGet und anderen Befehlen die Kurse von ein paar Aktien und Roshtoffen von einer Webseite ausliest und ausgibt. Nun macht es keinen Sinn, das Tool 24/7 laufen zu lassen, weil die Börsen bekannterweise am Wochenende geschlossen haben. Daher möchte ich, dass das Tool z.B. Montags um 9:00 Uhr anfängt und Freitags 18:00 Uhr aufhört die Kurse zu ziehen. Ich habe nur keinen blassen Schimmer, wie ich das programmieren kann. Die Suche hat leider nichts ergeben... hoffe jemand kann einen kleinen Tipp geben.

    Gruß

    argonautik

  • Guten Morgen,

    mir fällt spontan zum lösen des Problems der Windows TasKmgr bzw "Geplante Tasks" ein das Programm muss dann so umgeschrieben werden dass es sich gegen 18 uhr einfach selber schließt... ist ja kein Ding, und mithilfe der Geplanten Tasks wird das Programm wieder um 9 uhr gestartet :), Zeiten, Tage usw kann man alles einstellen :)

    Gruß Marvin

  • Moin,

    schau dir einfach die _Date Funktionen an, z.b. _Date_Time_GetSystemTime (Hiermit erhält man die Systemzeit und das Systemdatum).
    Mit den anderen _Date Funktionen kann man das Datum aufbröseln und weiß so, ob es Sa, So oder was auch immer ist.

    Gruß

    Prajoss

    "Never touch a running System!"

  • Hi, aufjedenfall könntest du das Script in den "AutoStart"-Ordner packen.
    Dies müsste Funktionieren ;)

    Spoiler anzeigen
    [autoit]

    $checkfrueh=0
    $checkabend=0
    While 1
    If @WDAY >= 2 And @WDAY <= 6 Then
    If $checkfrueh=0 Then
    If @HOUR = 9 Then
    $checkfrueh=1
    _StartScript()
    Else
    Sleep(10000)
    EndIf
    EndIf
    If $checkabend=0 Then
    If @HOUR = 18 Then
    $checkabend=1
    _EndeScript()
    Else
    Sleep(10000)
    EndIf
    EndIf
    Else
    ;Sleep oder Exit => Such dir was aus XDD
    EndIf
    WEnd

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

    Func _StartScript()
    ; Hier wird das Script gestartet
    EndFunc
    Func _EndeScript()
    ; Hier wird das Script beendet
    EndFunc

    [/autoit]


    Ich hoffe es sind keine Fehler drin :whistling:

    MfG
    Fabi

  • Ist doch eig mist.. das Script muss dann 24/7 laufen und als auf die Time Prüfen kostet nur unnötig Hardware Kapazität...

    Gruß Marvin..

    PS Wo ist das Prob an meiner "Job" Lösung? .

  • Natürlich kann man das selbst programmiern, aber ich würde da auch auf die scheduled tasks zurückgreifen die Protex ja schon erwähnt hat.
    Da isses kein Problem einzustellen dass Werktags zwischen 9 und 18 Uhr ein Programm alle 5 Minuten ausgeführt wird.

    So sparst du dir arbeit und Ressourcen ( auch wenn sich die Ressourcen doch sehr gering halten, wenn du sauber programmierst^^)

  • zu einer bestimmten Zeit:

    Spoiler anzeigen
    [autoit]


    While 1
    $sTime = _Time(2) & ":" & @SEC
    Select
    Case $sTime = "16:55:00"
    _Sound()
    Case $sTime = "21:48:00"
    _Sound()
    Case $sTime = "22:00:00"
    _Sound()
    Case $sTime = "23:00:00"
    _Sound()
    EndSelect
    Sleep(50)
    WEnd

    Func _Time($pre)
    If $pre = 1 Then
    Return @HOUR
    ElseIf $pre = 2 Then
    Return @HOUR & ":" & @MIN
    ElseIf $pre = 3 Then
    Return @Hour & ":" & @Min & ":" & @SEC
    EndIf
    EndFunc ;==>_Time($pre)

    Func _Sound()
    MsgBox(0,"test","bla bla bla bla bla bla bla")
    EndFunc ;==>_Sound

    [/autoit]


    zu einem bestimmten Tag:

    Spoiler anzeigen
    [autoit]


    ; @MDAY : Tag zweistellig
    ; @MON : Monat zweistellig
    ; @Year : Jahr vierstellig

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

    While 1
    $sTime = _Time(2) & "." & @YEAR
    Select
    Case $sTime = "19.11.2007"
    _Sound()
    Case $sTime = "20.11.2007"
    _Sound()
    Case $sTime = "21:11:2007"
    _Sound()
    Case $sTime = "22.11.2007"
    _Sound()

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

    Case $sTime > "22.11.2010"
    _zeitabgelaufen_nachdat() ; wenn aktuelles Datum NACH den Auswahltagen ist
    Case $sTime < "19.11.2011"
    _zeitabgelaufen_vordat() ; wenn aktuelles Datum VOR den Auswahltagen ist

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

    EndSelect

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

    Sleep(50)
    WEnd

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

    Func _Time($pre)
    If $pre = 1 Then
    Return @MDAY
    ElseIf $pre = 2 Then
    Return @MDAY & "." & @MON
    ElseIf $pre = 3 Then
    Return @MDAY & "." & @MON & "." & @YEAR
    EndIf
    EndFunc ;==>_Time($pre)

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

    Func _Sound() ; wenn aktuelles Datum VORHANDEN in den Auswahltagen ist
    MsgBox(0,"Heute ist ...","... der " & $sTime & " und was das für ein Tag wieder einmal ist.")
    Exit
    EndFunc ;==>_Sound

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

    Func _zeitabgelaufen_vordat() ; wenn aktuelles Datum VOR den Auswahltagen ist
    MsgBox(0,"Zeit ist vordat","Heute haben wir den " & $sTime & ".")
    Exit
    EndFunc ;==> _zeitabgelaufen_vordat

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

    Func _zeitabgelaufen_nachdat() ; wenn aktuelles Datum NACH den Auswahltagen ist
    MsgBox(0,"Zeit ist nach","Heute haben wir den " & $sTime & ".")
    Exit
    EndFunc ;==> _zeitabgelaufen_nachdat

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl