Zeitgesteuert aktion

  • Hallo Leute,

    Ich habe eine frage wie bekomme ich es hin das ein AutoIt Programm eine Aktion erst zu einen Bestimmten Uhrzeit gemacht wird.
    Ich möchte es nicht mit geplanten Task machen sonder wollte das AutoIt Programm Starten (z.B. um 16 Uhr und wenn es 23 Uhr oder so ist soll AutoIt eine Aktion machen. Sollange soll es warten.

    Einmal editiert, zuletzt von micneu (6. August 2008 um 08:55)

  • Moin,

    nun ja bedingtes warten, du musst schon immer zwischen durch mal checken was die Zeit geschlagen hat, mal was ganz einfaches:

    Spoiler anzeigen
    [autoit]

    ;Start
    Dim $startZeit = "23:00"
    While 1
    Sleep(1000)
    If StringFormat("%s:%s",@HOUR,@MIN) = $startZeit Then
    ;Mach was
    Exit
    EndIf
    WEnd

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Hallo.

    Bei zwei Zeiten, also 16:00 Uhr und 22:00 Uhr würde ich es so machen:

    Spoiler anzeigen
    [autoit]


    ;Uhrzeit angeben zu der der Code ausgeführt werden soll.
    $Stunde = 16
    $Minute = 00
    $Stunde2 = 22
    $Minute2 = 00

    While 1
    If @HOUR = $Stunde And @MIN = $Minute Then

    ; 16:00 Uhr Code einbauen

    Exit
    EndIf
    If @HOUR = $Stunde2 And @MIN = $Minute2 Then

    ; 22:00 Uhr Code einbauen

    Exit
    EndIf
    Sleep(400)
    WEnd

    [/autoit]

    LG, Crazy-A.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • so in etwa habe ich das auch gemacht!

    nur habe ich die _NowTime(4) genommen...
    und das ganze noch mit checkbox, weil bei mir die werte in einer inputbox stehen!
    ist für unser zeiterfassungstool, welches sich auch über web steuern lässt :)

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>
    #include <GuiEdit.au3>
    #Include <Date.au3>
    #include <IE.au3>

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

    #Region ### START Koda GUI section ### Form=d:\programme_tools\koda_2007.06.09\forms\mtz.kxf
    $Form1 = GUICreate("Internet Explorer MTZ 1.1", 246, 161, 359, 376)
    GUISetBkColor(0xC0C0B2)
    $Button1 = GUICtrlCreateButton("<-- Kommt", 32, 16, 73, 25)
    GUICtrlSetBkColor(-1,0x66CC00)
    $Button2 = GUICtrlCreateButton("Geht -->", 144, 16, 73, 25)
    GUICtrlSetBkColor(-1,0xff4D00)
    $t1 = GUICtrlCreateInput("8:00", 88, 64, 49, 21)
    $t2 = GUICtrlCreateInput("16:30", 152, 64, 49, 21)
    $Label3 = GUICtrlCreateLabel("Pause", 24, 104, 48, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $p1 = GUICtrlCreateInput("12:45", 88, 104, 49, 21)
    $p2 = GUICtrlCreateInput("13:15", 152, 104, 49, 21)
    $Label4 = GUICtrlCreateLabel("von", 104, 88, 22, 16)
    $Label5 = GUICtrlCreateLabel("bis", 168, 88, 17, 16)
    $Label1 = GUICtrlCreateLabel("Arbeit", 24, 64, 45, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 216, 64, 17, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox1", 216, 104, 17, 17)
    $Label2 = GUICtrlCreateLabel("Timer inaktiv !", 168, 136, 67, 17)
    $Label3 = GUICtrlCreateLabel(":-)", 5, 144, 67, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $seite = "http://xxxxxxxxxx/scripts/xxxxxx"
    $seite_state = "MTZ4000 Webterminal - Microsoft Internet Explorer"
    $user = "xxxx"
    $pass = "xxxxxx"
    $x = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1 ; buchen über button "Kommen"

    GUICtrlSetState($Button1, $GUI_DISABLE)
    GUICtrlSetState($Button2, $GUI_ENABLE)

    $oIE = _IECreate ($seite)

    Sleep(4000) ; 4 seconds

    WinSetState ($seite_state, "", @SW_MAXIMIZE )

    Send($user)
    Send("{TAB}")
    Send($pass)
    Send("{ENTER}")

    Sleep(4000) ; 4 seconds

    WinWaitActive($seite_state)

    ;~ ; +++++++++++Body der Internetseite auslesen++++++++++++
    ;~ ;$sHTML = _IEDocReadHTML ($oIE)
    ;~ ;MsgBox(0, "Document Source", $sHTML)

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

    ;~ $sText = _IEBodyReadText ($oIE)
    ;~ ;MsgBox(0, "Body Text", $sText)

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

    ;~ #include <Array.au3>

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

    ;~ Dim $avArray
    ;~ $avArray = _ArrayCreate($sText)

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

    ;~ _ArrayDisplay( $avArray, "Array created with _ArrayCreate" )
    ;~
    ;~ ;++++++++++++ Array durchsuchen +++++++++++
    ;~
    ;~ $Input = "Geht";InputBox("ArraySearch Demo", "String To Find?")
    ;~
    ;~ If @error Then Exit

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

    ;~ $Pos = _ArraySearch ($avArray, $Input, 0, 0, 0, True)
    ;~ Select
    ;~ Case $Pos = -1
    ;~ MsgBox(0, "Not Found", "was not found in the array.")
    ;~ Case Else
    ;~ MsgBox(0, "Found", "was found in the array at pos " & $Pos & ".")
    ;~ EndSelect
    ;~
    ;~ ;+++++++++++++++Body auslesen ende++++++++++++++++++++++++

    ;Send("{SPACE}")
    MouseClick("left", 206, 279, 1) ; buchen kommt
    ;MouseClick("left", 235, 407, 1) ; abmelden

    Sleep(2000) ; 2 seconds
    _IEQuit ($oIE)


    Case $Button2 ; buchen über button "Gehen"

    GUICtrlSetState($Button2, $GUI_DISABLE)
    GUICtrlSetState($Button1, $GUI_ENABLE)

    $oIE = _IECreate ($seite)

    Sleep(4000) ; 4 seconds

    WinSetState ($seite_state, "", @SW_MAXIMIZE )
    Send($user)
    Send("{TAB}")
    Send($pass)
    Send("{ENTER}")

    Sleep(4000) ; 4 seconds

    WinWaitActive($seite_state)
    ;Send("{SPACE}")
    MouseClick("left", 206, 279, 1) ; buchen geht
    ;MouseClick("left", 235, 407, 1) ; abmelden

    Sleep(2000) ; 2 seconds
    _IEQuit ($oIE)


    EndSwitch

    $kommen = GUICtrlRead($t1)
    $gehen = GUICtrlRead($t2)
    $pause_kommen = GUICtrlRead($p1)
    $pause_gehen = GUICtrlRead($p2)

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

    ;checkbox1 überprüfen und anhand des rückgabewertes freischalten oder auch nicht
    If GUICtrlRead($Checkbox1, $GUI_CHECKED)= $GUI_CHECKED Then
    $cb1 = GUICtrlRead($Checkbox1, $GUI_CHECKED)
    Else
    $cb1 = GUICtrlRead($Checkbox1, $GUI_UNCHECKED)= $GUI_UNCHECKED
    EndIf

    ;MsgBox(0,"",$cb1 & " 1")

    IF $cb1 = False Then

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

    ;MsgBox(0,"cb1",$cb1,1)
    ;########### beginn zeitgesteuertes Buchen ################

    IF $kommen = _NowTime(4) Then
    If $x <> 1 Then
    $oIE = _IECreate ($seite)
    ;_IEPropertySet ($oIE, "addressbar", False)
    ;_IEPropertySet ($oIE, "menubar", False)
    ;_IEPropertySet ($oIE, "toolbar", False)

    Sleep(4000) ; 4 seconds

    WinSetState ($seite_state, "", @SW_MAXIMIZE )

    Send($user)
    Send("{TAB}")
    Send($pass)
    Send("{ENTER}")

    Sleep(4000) ; 4 seconds

    WinWaitActive($seite_state)
    ;Send("{SPACE}")
    MouseClick("left", 206, 279, 1) ; buchen kommt
    ;MouseClick("left", 235, 407, 1) ; abmelden
    Sleep(2000) ; 2 seconds
    _IEQuit ($oIE)
    $x = 1

    Run("RunDll32.exe user32.dll,LockWorkStation") ; arbeitsstation sperren

    EndIf
    ;MsgBox(0,"",$kommen)
    EndIf

    IF $gehen = _NowTime(4) Then
    If $x <> 2 Then
    $oIE = _IECreate ($seite)
    ;_IEPropertySet ($oIE, "addressbar", False)
    ;_IEPropertySet ($oIE, "menubar", False)
    ;_IEPropertySet ($oIE, "toolbar", False)

    Sleep(4000) ; 4 seconds

    WinSetState ($seite_state, "", @SW_MAXIMIZE )
    Send($user)
    Send("{TAB}")
    Send($pass)
    Send("{ENTER}")

    Sleep(4000) ; 4 seconds

    WinWaitActive($seite_state)
    ;Send("{SPACE}")
    MouseClick("left", 206, 279, 1) ; buchen geht
    ;MouseClick("left", 235, 407, 1) ; abmelden

    Sleep(2000) ; 2 seconds
    _IEQuit ($oIE)
    $x = 2

    Run("RunDll32.exe user32.dll,LockWorkStation") ; arbeitsstation sperren

    Exit
    EndIf
    ;MsgBox(0,"",$kommen)

    EndIf

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

    Else
    ;nichts machen
    EndIf

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

    ;checkbox2 überprüfen und anhand des rückgabewertes freischalten oder auch nicht
    If GUICtrlRead($Checkbox2, $GUI_CHECKED)= $GUI_CHECKED Then
    $cb2 = GUICtrlRead($Checkbox2, $GUI_CHECKED)
    Else
    $cb2 = GUICtrlRead($Checkbox2, $GUI_UNCHECKED)= $GUI_UNCHECKED
    EndIf

    ;MsgBox(0,"","test"& $cb2)

    IF $cb2 = False Then

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

    ;MsgBox(0,"cb2",$cb2,1)

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

    IF $pause_kommen = _NowTime(4) Then
    If $x <> 3 Then
    $oIE = _IECreate ($seite)
    ;_IEPropertySet ($oIE, "addressbar", False)
    ;_IEPropertySet ($oIE, "menubar", False)
    ;_IEPropertySet ($oIE, "toolbar", False)

    Sleep(4000) ; 4 seconds

    WinSetState ($seite_state, "", @SW_MAXIMIZE )
    Send($user)
    Send("{TAB}")
    Send($pass)
    Send("{ENTER}")

    Sleep(4000) ; 4 seconds

    WinWaitActive($seite_state)
    ;Send("{SPACE}")
    MouseClick("left", 206, 279, 1) ; buchen geht
    ;MouseClick("left", 235, 407, 1) ; abmelden

    Sleep(2000) ; 2 seconds
    _IEQuit ($oIE)
    $x = 3
    EndIf
    ;MsgBox(0,"",$kommen)
    EndIf

    IF $pause_gehen = _NowTime(4) Then
    If $x <> 4 Then
    $oIE = _IECreate ($seite)
    ;_IEPropertySet ($oIE, "addressbar", False)
    ;_IEPropertySet ($oIE, "menubar", False)
    ;_IEPropertySet ($oIE, "toolbar", False)

    Sleep(4000) ; 4 seconds

    WinSetState ($seite_state, "", @SW_MAXIMIZE )
    Send($user)
    Send("{TAB}")
    Send($pass)
    Send("{ENTER}")

    Sleep(4000) ; 4 seconds

    WinWaitActive($seite_state)
    ;Send("{SPACE}")
    MouseClick("left", 206, 279, 1) ; buchen geht
    ;MouseClick("left", 235, 407, 1) ; abmelden

    Sleep(2000) ; 2 seconds
    _IEQuit ($oIE)
    $x = 4
    EndIf
    ;MsgBox(0,"",$kommen)
    EndIf
    Else
    ;nichts machen
    EndIf

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

    ;MsgBox(0,"",$cb2,1)

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

    IF $cb1 and $cb2 = True Then
    _GUICtrlEdit_SetText ($Label2, "Timer inaktiv !")
    Else
    _GUICtrlEdit_SetText ($Label2, "Timer aktiv !")
    EndIf

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

    ;########### end zeitgesteuertes Buchen ################

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

    WEnd

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

    autoit.de/wcf/attachment/2621/

    gruß gmmg


    [Blockierte Grafik: http://www.autoit.de/file:///C:/DOKUME~1/MARCEL~1.GRA/LOKALE~1/Temp/moz-screenshot.jpg]

  • Verwende doch _IE Funktionen.
    Dann kannst du das auch verstecken :)

    [autoit]

    $oform = _IEFormGetObjByName
    $element = _IEFormElementGetObjByName($oform,
    _IEFormElementSetValue($element,
    _IEFormSubmit
    _IELoadWait
    ...

    [/autoit]