Funktion oder Programm zur bestimmten Systemuhrzeit ausführen

  • Ich würde gerne wissen wie ich eine bestimmte funktion zu einer bestimmten Zeit startet. Ich stelle mir das so vor ich gebe eine uhr zeit in einer inputbox vor und wen es dann genau so spät ist wie ich es in der inputbox geschrieben habe das dann die funktion beginnt zu starten.
    Ich hoffe ihr könnt mir weiterhelfen:)
    P.s. bin neuling:)

  • Hallo blub1,

    Programme staten kannst du mit

    [autoit]

    run;oder mit
    shellexecute

    [/autoit]

    um die Zeit zu prüfen benötigst du

    [autoit]

    if..then;

    [/autoit]

    evtl. Makros wie

    [autoit]

    @hour;
    @min

    [/autoit]

    oder eine Funktiob wie z.B.

    [autoit]

    _NowCalc

    [/autoit]

    hier einmal ein allgemeines Skript das nachprüft ob die aktuelle Zeit zwischen 2 angegebenen Werten liegt:

    Spoiler anzeigen
    [autoit]


    #include <StaticConstants.au3>
    #include <date.au3>
    #include <DateTimeConstants.au3>
    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include<WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)

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

    Global $sTitel = 'Beispiel zur Nutzung der _NowCalc - Func'

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

    Global $hMainGui = GUICreate($sTitel, 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
    ;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $hMainGui gespeichert
    ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    ;Verknüpft dem Event $Gui_Event_Close mit der Funktion _End

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

    ;Menübar anzeigen
    Global $menu_help = GUICtrlCreateMenu("?", -1, 1)
    Global $item_help_auto = GUICtrlCreateMenuItem("Autor: (Auto)Bert", $menu_help)
    Global $item_help_exit = GUICtrlCreateMenuItem("Beenden", $menu_help)
    GUICtrlSetOnEvent(-1, '_End')

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

    Local $hedtFrom = GUICtrlCreateDate("01.01.2009", 20, 10, 150, 25, $DTS_UPDOWN)
    ;erzeugt ein From Steuerelement die zurückgegebene ID wird in der Variablen $hedtFrom gespeichert
    Local $DTM_SETFORMAT_ = 0x1032
    Local $style = "dd/MM/yyyy HH:mm"
    ;Local $style = "hh:mm"
    GUICtrlSendMsg($hedtFrom, $DTM_SETFORMAT_, 0, $style)
    GUICtrlSetData(-1, "10.10.2000 00.00")
    GUICtrlSetFont(-1, 12)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
    ;verankert das From Steuerelement Links, rechts, oben und fixiert die Höhe
    ;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite
    Local $hedtTo = GUICtrlCreateDate("01.01.2009", 20, 40, 150, 25, $DTS_UPDOWN)
    ;erzeugt ein To Steuerelement die zurückgegebene ID wird in der Variablen $hedtTo gespeichert
    GUICtrlSendMsg($hedtTo, $DTM_SETFORMAT_, 0, $style)
    GUICtrlSetFont(-1, 12)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
    ;verankert das To Steuerelement Links, rechts, oben und fixiert die Höhe
    ;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite

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

    GUICtrlCreateButton('&prüfen', 220, 10, 150, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    ;verankert den Button "Prüfen" rechts und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    GUICtrlSetOnEvent(-1, '_CheckDate')
    ;Beim Klicken des Buttons wird die Funktion _CheckTime aufgerufen

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

    Local $hlblErgebnis = GUICtrlCreateLabel("hier steht danach das Ergebnis", 12, 80, 170, 100)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert das Label links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am linken Rand

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

    GUICtrlCreateButton('Be&enden', 220, 115, 150, 25)
    GUICtrlSetOnEvent(-1, '_END')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)

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

    GUICtrlCreateGraphic(0, 210, 400, 2, $SS_BLACKRECT)
    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM)
    Global $hStatus = GUICtrlCreateLabel("Statuus", 5, 215, 400, 25)

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

    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM)
    ;verankert das Label Links, rechts und unten; fixiert die Höhe
    ;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite wird angepasst
    GUISetState()

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

    While 1
    Sleep(20000)
    WEnd

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

    Func _End()
    GUIDelete($hMainGui)
    Exit
    EndFunc ;==>_End

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

    Func _CheckDate()
    Local $dtNow = StringLeft(_NowCalc(), 16)
    Local $sCheckFrom = GUICtrlRead($hedtFrom)
    Local $sCheckTo = GUICtrlRead($hedtTo)
    If $sCheckFrom > $sCheckTo Then
    $sCheckFrom = $sCheckTo
    $sCheckTo = GUICtrlRead($hedtFrom)
    EndIf
    Local $dtFrom = StringMid($sCheckFrom, 7, 4) & "/" & StringMid($sCheckFrom, 4, 2) & "/" & StringLeft($sCheckFrom, 2) & " " & StringRight($sCheckFrom, 5)
    Local $dtTo = StringMid($sCheckTo, 7, 4) & "/" & StringMid($sCheckTo, 4, 2) & "/" & StringLeft($sCheckTo, 2) & " " & StringRight($sCheckTo, 5)
    ConsoleWrite("Jetzt " & $dtNow & @CRLF)
    ConsoleWrite("1. " & $dtFrom & @CRLF)
    ConsoleWrite("2. " & $dtTo & @CRLF)
    If $dtFrom <= $dtNow And $dtTo >= $dtNow() Then
    $sLblText = $dtNow & @CRLF & "liegt innerhalb Zeitfenster" & @CRLF
    Else
    $sLblText = $dtNow & @CRLF & "liegt ausserhalb Zeitfenster" & @CRLF
    EndIf
    GUICtrlSetData($hlblErgebnis, $sLblText)
    EndFunc ;==>_CheckDate

    [/autoit]

    mfg autoBert