Zeit gesteuert eine Funktion aufrufen

  • Hallo,

    habe eine frage wie kann ich eine funktion zeitgesteuert starten?

    aslo in etwa so das ich über GUICtrlCreateDate datum uhrzeit angebe wann es ausgerührt werden soll und er führt die bestimmte funktion aus.
    Und das ich Mehre zeitfensterangebe wann es ausgeführt werden soll die executezeiten
    Datum|uhrzeit
    in einer listview darstellen kann
    und das ganze wollte ich auch speichern in eine *. ini
    jemand eine idee wie ich das mache.
    Bin ja gerademal seit 2 monaten mitglied habe auch viel gemacht
    aber vor so etwas habe ich echt nie gemacht auch nichts darüber gefunden?


    Also so in etwa habe ich es mir vorgestellt:
    autoit.de/wcf/attachment/5538/

    [autoit]

    #include <ButtonConstants.au3>
    #include <DateTimeConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 326, 257, 192, 124)
    $Date1 = GUICtrlCreateDate("2009/07/25 06:14:54", 32, 48, 186, 21)
    $ListView1 = GUICtrlCreateListView("Datum|Uhrzeit", 32, 80, 186, 150)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    $Time = GUICtrlCreateLabel("Time Left To Execute", 64, 16, 187, 17)
    $Button1 = GUICtrlCreateButton("Hinzufügen", 224, 48, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Gruß
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Moin,
    Ich weiss leider nicht ob deine Zeitsteuerung (wie es die Grafik erahnen lässt) nur für ein Datum gilt oder auch noch eine Uhrzeit.
    (Nur so als Tipp: wenn du die Funktion in einer Schleife aufrufst, die zu Beginn das Datum POSITIV überprüft, dann wird sich die
    Funktion (ungewollt) oft abspielen!!) :D

    ich würde dir die _Datediff Funktion zur Überprüfung anbieten (guck am besten in der Hilfe nach, frei nach dem Motto: selber lernen macht klug)
    und dann kannste dir auch guictrlcreatedate angucken (wegen der Ansicht des Datums)
    ACHTUNG: wenn du das Datum nicht auf das _datediff format bringst, kann es damit nicht arbeiten. 8)
    Ich hoffe ich nehme nicht zuviel weg (solltest du in der hilfe nachschauen , dann prägt es sich ein ;) )

    [autoit]

    Local $DTM_SETFORMAT_, $style
    $DTM_SETFORMAT_ = 0x1032
    $style = "dd.MM.yyyy"
    $Date1 = GUICtrlCreateDate(@YEAR&"/"&@MON&"/"&@MDAY, 208, 120, 169, 21)
    GUICtrlSendMsg($Date1, $DTM_SETFORMAT_, 0, $style)
    ;Das war die Änderung zum "deutschen" Datumsformat, kann man aber auch mit Uhrzeit machen glaub ich

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

    Func Date2User($date,$status=1)

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

    If $status=1 Then
    $ts=StringSplit($date,"/")
    _ArrayReverse($ts)
    $output=$ts[0]&"."&$ts[1]&"."&$ts[2]
    Return $output
    Else
    $ts=StringSplit($date,".")
    _ArrayReverse($ts)
    $output=$ts[0]&"/"&$ts[1]&"/"&$ts[2]
    Return $output
    EndIf
    EndFunc
    ;Das ist meine Funktion zum Umwandeln zwischen dem "deutschen" und dem "englischen" Datum
    ;Wenn du ein deutsches Datum hast, gib es als Argument in die Funktion ein, wähle als status Irgendwas ungleich 1
    ;Die Rückgabe solltest du dann in einer neuen variable speichern
    ;Andersrum kannst du das englische datum entweder mit dem 2ten Argument 1 übergeben, oder nur 1 Argument nehmen (1 = default)

    [/autoit]


    Ich hoffe du kannst damit was anfangen :D

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Danke für den Tipp,

    ja ich will ja datum und Uhrzeit Prüfen und dann den task starten bzw. die Function.
    Aber ich weiss nicht zur zeit wie ich anfangen soll ?
    Hat jemand noch einen tipp für mich ??

    Gruß
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • du hast den style bestimmt schon geändert?!
    wenn du diese Einstellung nimmst kannste die Uhrzeit auch mit anzeigen lassen
    $style = "dd.MM.yyyy - hh:mm"

    die Überprüfung kannste ganz einfach machen:

    [autoit]

    If guictrlread($date1)=@mday&"."&@mon&"."&@year&" - "&@hour&":"&@min then
    FUNKTION()
    ;SLEEP ODER SOWAS DARFSTE HIER NICHT VERGESSEN , sonst wird sie zu oft ausgeführt sleep(60000)= 1 min
    endif

    [/autoit]


    (nicht getestet.. sollte aber funzen) :D

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Hey,

    das klappt soweit wie würde ich den verschieden werte aus der Listview abfragen?

    Gruß
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Hey,
    jetzt stehe ich vor einem Problem was ich nicht bedacht habe,

    wie schreibe ich die einträge in die listview "GUICtrlCreateListViewItem"
    , das ist klar aber, wie schreibe ich gleichzeitig es in eine ini und wenn der job erledigt ist.
    Wie lösche ich den ini eintrag und gleichzeitig aus der listview.
    Und vor allem wenn ich die die gui starte und ich einträge in der ini habe, sollten die ListViewItem sich wiederhergestellt werden.

    Und Hilfreiche Tipps Für mich ?

    Gruß
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."