Uhrzeit ständig aktualisieren, aber wie?

  • Ich möchte das sich die Uhrzeit ständig aktualisiert

    Ich habe es im moment in einer Msgbox stehen also:

    [autoit]

    Msgbox(0, "Uhrzeit", @Hour&" : "&@Min&" : "&@SEC)

    [/autoit]

    So zeigt die Msgbox die Uhrzeit an, wo diese gestartet wurde.

    Nun möchte ich das die sekunden, minuten und stunden sich sozusagen immer synchronisieren.


    Wie kann man dieses hinbekommen?

    Einmal editiert, zuletzt von ophiel (26. Juni 2010 um 20:19)

  • Nun möchte ich das die sekunden, minuten und stunden sich sozusagen immer synchronisieren.
    IMMER, wohl kaum. ;) Aber alle 100 Millisekunden z.B.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $hWnd = GUICreate("Uhrzeit", 100, 30)
    $cLabelTime = GUICtrlCreateLabel("", 5, 2, 200, 30)
    GUICtrlSetFont(-1, 18)
    GUISetState()

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

    $sOldTime = ""
    AdlibRegister("_UpdateTime", 100)

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

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

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

    Func _UpdateTime()
    $sNewTime = @HOUR & ":" & @MIN & ":" & @SEC
    If $sNewTime <> $sOldTime Then
    GUICtrlSetData($cLabelTime, $sNewTime)
    $sOldTime = $sNewTime
    EndIf
    EndFunc

    [/autoit]
  • [autoit]

    while Msgbox(0, "Uhrzeit", @Hour&" : "&@Min&" : "&@SEC,1)<>1 ;Msgbox wird jede Sekunde aktualisiert, so lange bis OK gedrückt wird
    wend

    [/autoit]

    sry, aber der musste jetzt sein :o)

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (26. Juni 2010 um 20:23)

  • danke habs jez geschafft =)

    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("Uhrzeit", 200, 200, 600, 200)
    $Zeit = GUICtrlCreateLabel(@HOUR&" : "&@MIN&" : "&@SEC, 40, 50, 100, 17)

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

    GUISetState(@SW_Show)

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

    While 1
    GUICtrlSetData($Zeit, @HOUR&" : "&@MIN&" : "&@SEC)
    $msg = GUIGETMSG()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Mach es Lieber so dann ruckelt das Label nicht so :)

    [autoit]

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

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

    GUICreate("Uhrzeit", 200, 200, -1, -1)
    $Zeit = GUICtrlCreateLabel(_NowTime(), 40, 50, 100, 17)
    GUISetState(@SW_Show)
    AdlibRegister("_Update", 100)
    Func _Update()
    GUICtrlSetData($Zeit, _NowTime())
    EndFunc
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Beispiel für eine Anzeige nur nach Änderung.
    Damit könnte man auch täglich die Zeit mit einem Zeitserver synchronisieren...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("Uhrzeit", 200, 200, 600, 200)
    $Zeit = GUICtrlCreateLabel("", 40, 50, 100, 17) ;muß nicht vorbelegt sein

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

    GUISetState(@SW_SHOW)
    $oldsec = ""

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

    While 1
    If $oldsec <> @SEC Then ;Zeit wird nur aktualisiert, wenn @sec sich verändert hat
    GUICtrlSetData($Zeit, @HOUR & " : " & @MIN & " : " & @SEC)
    $oldsec = @SEC
    EndIf

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

    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    @tuttifrutti,
    wieso updatest du nicht alle 1000ms sondern alle 100ms?
    Weiterhin ist die "Date.au3" sicherlich nützlich, aber eine 129kb-UDF einzubinden um im Quellcode 12 Bytes zu sparen?
    Außerdem macht _NowTime() nichts anderes als...

    [autoit]

    Func _NowTime($sType = 3)
    If $sType < 3 Or $sType > 5 Then $sType = 3
    Return (_DateTimeFormat(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC, $sType))
    EndFunc ;==>_NowTime

    [/autoit]


    d.h. je nach Systemzeiteinstellung werden die Sekunden "weggebügelt"! Und es sind nur HH:MM sichtbar....suboptimal!

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (27. Juni 2010 um 08:50)

  • Ich gebe noch mal meinen Senf dazu

    hier ist ein Beispiel von einer sich Aktualiesierenden MsgBox.

    [autoit]


    #include <Timers.au3>
    $hGui = GUICreate("") ; Nur als Dummy
    _Timer_SetTimer($hGui,1000,"_UpdateMsgBox")

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

    MsgBox(0,"Aktualisierende MsgBox",@HOUR & ":" & @MIN & ":" & @SEC)

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

    Func _UpdateMsgBox($hWnd, $Msg, $iIDTimer, $dwTime)
    ControlSetText("Aktualisierende MsgBox","","Static1",@HOUR & ":" & @MIN & ":" & @SEC)
    EndFunc

    [/autoit]