Funktion zu einem bestimmten Zeitpunkt ausführen

  • Hallo Leute,
    ich habe ein kleines Script geschrieben, mit Koda die GUI dafür erstellt und einen Date-Picker eingebaut.
    In den Date-Picker kann man die Zeit im "hh:mm:ss" Format eingeben. Dann soll man mit dem OK Button bestätigen...
    Jetzt mal zu meinem Problem:

    Ich weiß nicht, welchen Code ich verwenden muss, um z.B. "Funktion 1 am 30.12.2010 12:30:00" aus führen zu lassen.

    [autoit]

    GUICtrlSetOnEvent($okbutton, "timer")

    [/autoit]


    sowie die Func timer hab ich schon fest gelegt.


    Kann mir jemand helfen?

    Gruß philn

    Einmal editiert, zuletzt von philn (1. Januar 2011 um 18:22)

  • Es ist mehr eine Idee zumn Script bzw. die Frage, ob sowas überhaupt möglich ist;)
    Also das ist die Grundidee:

    Spoiler anzeigen
    [autoit]


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

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

    Opt("GUIOnEventMode", 1)

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

    #Region ### START Koda GUI section ### Form=

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

    $Form1 = GUICreate("Test", 318, 241, 188, 312)
    $date1 = GUICtrlCreateDate("2010/12/31 13:25:30", 40, 8, 97, 34)
    If @UNICODE Then
    GUICtrlSendMsg(-1, 0x1032, 0, "hh:mm:ss") ; DTM_SETFORMATW
    Else
    GUICtrlSendMsg(-1, 0x1005, 0, "hh:mm:ss") ; DTM_SETFORMAT
    EndIf
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $date2 = GUICtrlCreateDate("2010/12/31 13:25:30", 40, 57, 97, 34)
    If @UNICODE Then
    GUICtrlSendMsg(-1, 0x1032, 0, "hh:mm:ss") ; DTM_SETFORMATW
    Else
    GUICtrlSendMsg(-1, 0x1005, 0, "hh:mm:ss") ; DTM_SETFORMAT
    EndIf
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $date3 = GUICtrlCreateDate("2010/12/31 13:25:30", 40, 105, 97, 34)
    If @UNICODE Then
    GUICtrlSendMsg(-1, 0x1032, 0, "hh:mm:ss") ; DTM_SETFORMATW
    Else
    GUICtrlSendMsg(-1, 0x1005, 0, "hh:mm:ss") ; DTM_SETFORMAT
    EndIf
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $date4 = GUICtrlCreateDate("2010/12/31 13:25:30", 40, 152, 97, 34)
    If @UNICODE Then
    GUICtrlSendMsg(-1, 0x1032, 0, "hh:mm:ss") ; DTM_SETFORMATW
    Else
    GUICtrlSendMsg(-1, 0x1005, 0, "hh:mm:ss") ; DTM_SETFORMAT
    EndIf
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $date5 = GUICtrlCreateDate("2010/12/31 13:25:30", 40, 201, 97, 34)
    If @UNICODE Then
    GUICtrlSendMsg(-1, 0x1032, 0, "hh:mm:ss") ; DTM_SETFORMATW
    Else
    GUICtrlSendMsg(-1, 0x1005, 0, "hh:mm:ss") ; DTM_SETFORMAT
    EndIf
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $check1 = GUICtrlCreateCheckbox("", 8, 8, 17, 33)
    $check2 = GUICtrlCreateCheckbox("", 8, 57, 17, 33)
    $check3 = GUICtrlCreateCheckbox("", 8, 104, 17, 33)
    $check4 = GUICtrlCreateCheckbox("", 8, 152, 17, 33)
    $check5 = GUICtrlCreateCheckbox("", 8, 201, 17, 33)
    $zahl1 = GUICtrlCreateInput("1", 160, 8, 65, 34)
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $zahl2 = GUICtrlCreateInput("1", 161, 56, 65, 34)
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $zahl3 = GUICtrlCreateInput("1", 160, 105, 65, 34)
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $zahl4 = GUICtrlCreateInput("1", 160, 153, 65, 34)
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $zahl5 = GUICtrlCreateInput("1", 160, 201, 65, 34)
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    $startbutton = GUICtrlCreateButton("Start", 240, 8, 73, 225, $WS_GROUP)
    GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
    GUISetState(@SW_SHOW)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUICtrlSetOnEvent($startbutton, "timer")

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

    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep (1000) ;Programm bummelt im Leerlauf
    WEnd

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

    Func timer()
    $active1 = GUICtrlRead ( $check1 )
    $active2 = GUICtrlRead ( $check2 )
    $active3 = GUICtrlRead ( $check3 )
    $active4 = GUICtrlRead ( $check4 )
    $active5 = GUICtrlRead ( $check5 )
    ;Checkboxen auslesen

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

    $wert1 = GUICtrlRead ( $zahl1 )
    $wert2 = GUICtrlRead ( $zahl2 )
    $wert3 = GUICtrlRead ( $zahl3 )
    $wert4 = GUICtrlRead ( $zahl4 )
    $wert5 = GUICtrlRead ( $zahl5 )
    ;Anzahl auslesen

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

    $time1 = GUICtrlRead ( $date1 )
    $time2 = GUICtrlRead ( $date2 )
    $time3 = GUICtrlRead ( $date3 )
    $time4 = GUICtrlRead ( $date4 )
    $time5 = GUICtrlRead ( $date5 )
    ;Datum auslesen

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

    ;Wie kann ich den folgenden Code abändern, damit er funktioniert?
    ;Aktuelle Zeit abfragen?
    ;Eingegebene mit der aktuellen Zeit vergleichen?
    ;Dann eine bestimmte Zeit warten?

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

    If $active1 = "1" Then ;Wenn 1. Checkbox aktiviert, dann... usw.
    Do
    Send ("Hallo Welt!")
    Sleep (4000)
    Send ("Hallo du da!")
    $wert1 = $wert1 -1
    Until $wert1 = "0"

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

    ElseIf $active2 = "1" Then
    Do
    Send ("Hallo Welt!")
    Sleep (4000)
    Send ("Hallo du da!")
    $wert2 = $wert2 -1
    Until $wert2 = "0"

    ElseIf $active3 = "1" Then
    Do
    Send ("Hallo Welt!")
    Sleep (4000)
    Send ("Hallo du da!")
    $wert3 = $wert3 -1
    Until $wert3 = "0"

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

    ElseIf $active4 = "1" Then
    Do
    Send ("Hallo Welt!")
    Sleep (4000)
    Send ("{F4}")
    $wert4 = $wert4 -1
    Until $wert4 = "0"

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

    ElseIf $active5 = "1" Then
    Do
    Send ("Hallo Welt!")
    Sleep (4000)
    Send ("Hallo du da!")
    $wert5 = $wert5 -1
    Until $wert5 = "0"
    Else
    Sleep (100)
    EndIf
    EndFunc

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

    Func close()
    Exit
    EndFunc

    [/autoit]


    Gruß
    philn

    2 Mal editiert, zuletzt von bernd670 (31. Dezember 2010 um 16:49)

  • Hallo philn,

    für mich ist das ein Spaming-Tool, als solches verstösst es gegen die Forenregeln

    Ich habe den Thread bis zur Überprüfung und evtl, Freigabe bzw. Löchung durch einen Mod/Admin dektiviert. PN an dich it unterwegs,

    Edit: du solltest genau erklären was du damit bezwecken möchtest

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (31. Dezember 2010 um 19:23)

  • Danke dir Twodollarbillie... hatte ganz vergessen, dass ich das auch so machen kann^^
    Achso:
    @ autoBert wie bereits in der PN beschrieben: Wenn ich ein Spamming Tool haben will, mache ich eine Endlosschleife und keine Uhrzeitabfrage :P
    SEuBo Das weiß ich selbst nicht so genau... hat Koda gesetzt.

    Danke für eure Hilfe Problem gelöst :)

  • Hallo philn,

    Danke für eure Hilfe Problem gelöst :)


    schön, dann ist dein Problem ja gelöst, schön wäre es allerdings auch wenn du den Thread auf gelöst setzt. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden)

    Wo hast du denn das Makro @UNICODE her?!

    SEuBo Das weiß ich selbst nicht so genau... hat Koda gesetzt.

    Du solltest dein Koda updaten

    frohes neues Jahr autoBert