Zeit anzeigen lassen

  • Hallo, ich hab mal eine Frage. Einige von euch denken bestimmt: "Ach das geht doch sowas von einfach". Naja ich bin halt noch neuer bei AutoIt und brauche eure Hilfe.

    Ich weiß wie ich indirekt die Zeit anzeigen lassen, nur ist das nicht die beste Lösung. Meine Lösung bisher ist:

    [autoit]

    While 1
    Sleep(100)
    MsgBox(10,"time",@HOUR & ":" & @MIN & ":" & @SEC,1)
    WEnd

    [/autoit]

    Die Zeit will ich in dem Script hinter "Zeit:" anzeigen lassen.

    [autoit]


    #include <GUIConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 478, 373, 284, 192)
    $Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Button1 = GUICtrlCreateButton("x1", 352, 24, 113, 41, 0)
    $Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41, 0)
    $Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41, 0)
    $Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41, 0)
    $Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41, 0)
    $Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41, 0)
    $Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41, 0)
    $Button8 = GUICtrlCreateButton("8", 184, 307, 113, 41, 0)
    $Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41, 0)
    $Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41, 0)
    $Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41, 0)
    $Label1 = GUICtrlCreateLabel("Zeit: ", 256, 96, 45, 2 ;<== Die aktuelle Zeit soll hintern dem "Zeit:" stehn
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

    [/autoit]

    Dies ist ein einfaches GUI Fenster.

    Danke schonmal für eure Hilfe.

  • So? oO :

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 478, 373, 284, 192)
    $Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Button1 = GUICtrlCreateButton("x1", 352, 24, 113, 41, 0)
    $Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41, 0)
    $Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41, 0)
    $Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41, 0)
    $Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41, 0)
    $Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41, 0)
    $Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41, 0)
    $Button8 = GUICtrlCreateButton("8", 184, 307, 113, 41, 0)
    $Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41, 0)
    $Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41, 0)
    $Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41, 0)
    $Label1 = GUICtrlCreateLabel("Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 256, 96, 145);<== Die aktuelle Zeit soll hintern dem "Zeit:" stehn
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    sleep(1000)
    GuiCtrlSetData($Label1, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Hmm? Wollte Pinguin das nicht so in etwa? :D Es wird jede Sekunde die akuelle Zeit angezeigt...

  • Jops, aber 1000 sleep sind zu lange :) Damit kann man die GUI nicht mehr schließen.

    Spoiler anzeigen
    [autoit]

    While 1
    If GUICtrlRead($Label1) <> "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC Then GUICtrlSetData($Label1, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Mit AdlipEnabable würds gehn.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 478, 373, 284, 192)
    $Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Button1 = GUICtrlCreateButton("x1", 352, 24, 113, 41, 0)
    $Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41, 0)
    $Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41, 0)
    $Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41, 0)
    $Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41, 0)
    $Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41, 0)
    $Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41, 0)
    $Button8 = GUICtrlCreateButton("8", 184, 307, 113, 41, 0)
    $Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41, 0)
    $Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41, 0)
    $Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41, 0)
    $Label1 = GUICtrlCreateLabel("Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 256, 96, 145);<== Die aktuelle Zeit soll hintern dem "Zeit:" stehn
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    AdlibEnable ("_Time", 1000)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    Func _Time ()
    GuiCtrlSetData($Label1, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Commander21 (14. April 2009 um 17:09)

  • weil 'AdlipEnabable' danach schreit,
    in das Wortschatzbuch der "verständlichsten" Begriffe aufgenommen zu werden
    :rofl:

    soll wohl heißen: AdlibEnable

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    • Offizieller Beitrag

    Ich habe da noch ein Beispiel. Da AdlibEnable in meinen Augen für Wichtigeres reserviert werden sollte, hab ich das Beispiel mit _Timer_SetTimer erstellt. Diese Funktion wird viel zu wenig benutzt , obwohl sie ebensogut wie AdlibEnable ist.

    Spoiler anzeigen
    [autoit]

    #include <Timers.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 478, 373, 284, 192)
    $Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $Button1 = GUICtrlCreateButton("x1", 352, 24, 113, 41, 0)
    $Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41, 0)
    $Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41, 0)
    $Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41, 0)
    $Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41, 0)
    $Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41, 0)
    $Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41, 0)
    $Button8 = GUICtrlCreateButton("8", 184, 307, 113, 41, 0)
    $Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41, 0)
    $Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41, 0)
    $Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41, 0)
    $Label1 = GUICtrlCreateLabel("Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 256, 96, 145);<== Die aktuelle Zeit soll hintern dem "Zeit:" stehn
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    _Timer_SetTimer($Form1, 1000, "_UpdateClock") ; create timer

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

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

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

    Func _UpdateClock($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
    GuiCtrlSetData($Label1, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)

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

    EndFunc ;==>_UpdateClock

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    • Offizieller Beitrag

    Hallo

    Wiso?


    Da musst' ich doppelt schmunzeln ;)

    Aber zum Thema:
    Auch auf die Gefahr hin, dass ich dich jetzt komplett verwirre ;) Das funktioniert auch:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>

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

    Opt("GuiOnEventMode",1)

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 478, 373, 284, 192)
    $Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Button1 = GUICtrlCreateButton("x1", 352, 24, 113, 41, 0)
    $Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41, 0)
    $Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41, 0)
    $Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41, 0)
    $Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41, 0)
    $Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41, 0)
    $Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41, 0)
    $Button8 = GUICtrlCreateButton("8", 184, 307, 113, 41, 0)
    $Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41, 0)
    $Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41, 0)
    $Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41, 0)
    $Label1 = GUICtrlCreateLabel("Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 256, 96, 145);<== Die aktuelle Zeit soll hintern dem "Zeit:" stehn
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_exit")
    #EndRegion ### END Koda GUI section ###
    While 1
    GuiCtrlSetData($Label1, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)
    Sleep(250)
    WEnd

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]

    Mfg Spider

  • Kla kannste jede Zahl unter 1000 als sleep einsetzen :D .. aber am recourcensparensten ist 1000 ;)

    • Offizieller Beitrag

    Hallo

    Es ist sowas von egal, ob du nun 1000 oder 100 nimmst. Erst dadrunter kann das Label auf alten PC's anfangen zu flickern ;)
    Problem bei 1000 ist, dass du nicht auf die Sekunde genau bist. Kann ja sein das die Sekunde jetzt schon umspringt, aber das SCript das erst in beispielsweise 900ms "mitbekommt"

    Mfg Spider

  • Kla ist das bei sonem kleinen script piep egal... aber es ist doch fakt das 1000ms 10x recourcensparender als 100ms ist, oder? und selbst wenn das label, nicht in der absolut richtigen zeit ist (unglücklichster Fall offset von 999ms) .. ist das genauso piep egal..da jede uhr auf dieser welt nicht auf die millisekunde genau ist (geht schonmal nicht, sonst müsste man für jeden breiten/längengrad auf der erde ne andere zeitzone haben, Form der erde, bahn der erde, relativitätstheorie etc.)..
    Der user muss nur sehen das sich das Label jede Sekunde 1x mal verändert, und der Scripter sollte am recourcensparensten scripten wies geht!

    Weiß darüber kann man philosophieren aber ich will nich, dass wir noch die armen neulinge verwirren :D

    Einmal editiert, zuletzt von ChaosKeks (14. April 2009 um 21:05)