Stehene Uhr mit ein Anderem GUI Fenster zum leben erwecken!.

  • Hallo an Alle!

    Ich habe ein Problem und zwar ich habe ein Programm das ein Gui Fenster hat wo die Uhrzeit zu sehen ist und das man die zeit ändern kann die zeit hat nicht mit der aktuellen zeit zu tun. Die Uhr ändert sich immer nur wenn man das Fenster Schliesst und wieder öffnet wenn das fenster wieder aktiv ist, damit ich die zeit immer aktuell sehen kann wollte ich mir eine eigene Gui bauen wo dann diese Zeit zum leben geruft wird wie ob eine Richtige uhr bewegt. Das Programm wo die Uhr zu sehen ist sind 3 Input fenster wo jede Input Fenster (ID)die Stunde,Minuten und Sekunden stehen. Die zeit selber kann man mit dem befehl controlsettext im eingne fenster bringen doch wie gesagt es soll ja zum leben geruft wird. Das heisst wenn ich nun das Fenster vom Programm öffne das dann mein eigenes fenster durch das Titel des anderen fenster erkennt und dann Startet.

    ich habe mal zwei Gui erstellt wo das eine nur das sehene Fenster ist und das andere soll dann Später die zeit anzeigen und auch dann wie eine Richtige Uhr zum laufen erweckt wird. aber noch mal nicht die System Uhr vom Windows die zeit ist im beispiel schon eingetragen.


    Stehen Uhr wo nur die uhr zeit ermittelt werden muss (Input ID)

    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Stehene Uhr", 625, 109, 192, 124)
    $Input1 = GUICtrlCreateInput("12", 48, 32, 113, 21)
    $Input2 = GUICtrlCreateInput("40", 200, 32, 137, 21)
    $Input3 = GUICtrlCreateInput("33", 392, 32, 169, 21)
    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]

    Case $Input1
    EndSwitch
    WEnd

    [/autoit]


    Und dieses Fenster soll dann die Aktuelle zeit von der stehen Uhr eintragen werden und zum laufen gebracht werden.

    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Stehene Uhr", 625, 109, 192, 124)
    $lbHour = GUICtrlCreateInput("", 48, 32, 113, 21)
    $lbmin = GUICtrlCreateInput("", 200, 32, 137, 21)
    $lbsec = GUICtrlCreateInput("", 392, 32, 169, 21)
    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]

    Case $Input1
    EndSwitch
    WEnd

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


    Bitte Bitte um Hilfe ich komme nicht weiter ich habe zwar mit controlsettext das feld schon eingetragen gehabt doch wieder gelöscht da ich nicht wusste ob ich denn Richtigen eingeschlagen hätte

    Gruß Baron

    • Offizieller Beitrag
    Zitat

    Bitte Bitte um Hilfe ich komme nicht weiter ich habe zwar mit controlsettext das feld schon eingetragen gehabt doch wieder gelöscht da ich nicht wusste ob ich denn Richtigen eingeschlagen hätte

    Hört sich doch eigenlich nach der Lösung des Problems an, poste lieber mal den Quellcode deines Versuches.

  • Ok hier das Skript mit das controlsettext.

    [autoit]

    $Form1 = GUICreate("Uhr zu leben rufen", 625, 109, 192, 124)
    $Input1 = GUICtrlCreateInput("", 48, 32, 113, 21)
    $Input2 = GUICtrlCreateInput("", 200, 32, 137, 21)
    $Input3 = GUICtrlCreateInput("", 392, 32, 169, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $XX = ControlGetText('Stehene Uhr','','Edit1')
    ControlSetText('Uhr zu leben rufen','','Edit1',$XX)

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

    $YY = ControlGetText('Stehene Uhr','','Edit2')
    ControlSetText('Uhr zu leben rufen','','Edit2',$YY)

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

    $ZZ = ControlGetText('Stehene Uhr','','Edit3')
    ControlSetText('Uhr zu leben rufen','','Edit3',$ZZ)

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

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

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

    Case $Input1

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

    Case $Input2
    Case $Input3
    EndSwitch
    WEnd

    [/autoit]

    ja das ist ja noch leicht doch wie bekomme ich jetzt das ganze zum laufen als das diese zahlen jetzt wie eine uhr laufen.

    das erste feld ist die Stunde das 2 die minuten und das 3 feld die sekunden. ich habe nur die bezeichnung weg gelassen bei der GUI da ich es ja später wenn alles geht es richtig mit bild baue.

    wie gesagt die zahlen die nun eingetragen sind durch diesem skript sollen nun auch sich bewegen wie eine uhr und mit dem sekunden.

    Gruß Baron

  • Da gibts mehrere Wege:
    Ein Weg ist, einen Timer zu erstellen, und dann relativ zur zeit eine bestimmte Summe heraufzuaddieren,
    oder
    du machst 3 Funktionen, die jeweils die Controls um eins erhöhen, und lässt sie jede Sekunde/Stunde/... aufrufen
    einfach zu erreichen mit AdlibRegister("Function", TIME)
    ansonsten siehts doch gut aus (ich muss zugeben dass ich es noch nicht ausgeführt habe)

    Meine Werke


    EasyScreen (teilweise Crocoframe): <EasyScreen>
    Spotify2Title: <Spotify2Title> (zur Info, dies ist KEIN Spotify-Downloader! Wer das dachte... :rofl: sowas gibts hier nicht :thumbdown: )

  • ja das ist ja das problem ich weiß nicht wie ich das genau jetzt anstellen muss da ich sonst immer automatische Intallersion erstellt habe mit Autoit.

    es würde echt nett sein von euch wenn einer von euch die zeit findet und kurz das skript mit der function einbaut das die sache zum laufen kommt dann kann ich mir auch genau anschauen wie das funkioniert .


    Gruß Baron.


    P.s. Es ist wirklich so das manchmal die ideen auf einmal kommen erst weiß man nichts und dann im laufen Tage,Wochen,Monate und Jahre dann kommen auf einmal viele ideen die man dann nicht auf einmal kann. Wie z.B. Tuneup warum Tuneup auf dem Rechner wenn man das mit Autoit erstellt ist ja nichts anders als was man mit Autoit auch kann wie z.B. Verknüfungspfeil vom Desktop zu entfernen.

    • Offizieller Beitrag

    Probier mal das:

    Spoiler anzeigen
    [autoit]

    ;~ #include <GUIConstantsEx.au3>
    ;~ $Form1 = GUICreate("Uhr zu leben rufen", 625, 109, 192, 124)
    ;~ $Input1 = GUICtrlCreateInput("", 48, 32, 113, 21)
    ;~ $Input2 = GUICtrlCreateInput("", 200, 32, 137, 21)
    ;~ $Input3 = GUICtrlCreateInput("", 392, 32, 169, 21)
    ;~ GUISetState(@SW_SHOW)
    ;~ #EndRegion ### END Koda GUI section ###

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

    ;~ $XX = ControlGetText('Stehene Uhr','','Edit1')
    ;~ ControlSetText('Uhr zu leben rufen','','Edit1',$XX)

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

    ;~ $YY = ControlGetText('Stehene Uhr','','Edit2')
    ;~ ControlSetText('Uhr zu leben rufen','','Edit2',$YY)

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

    ;~ $ZZ = ControlGetText('Stehene Uhr','','Edit3')
    ;~ ControlSetText('Uhr zu leben rufen','','Edit3',$ZZ)
    AdlibRegister("SetTime", 1000)

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

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

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

    ;~ Case $Input1

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

    ;~ Case $Input2
    ;~ Case $Input3
    ;~ EndSwitch
    WEnd

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

    Func SetTime()
    Local Static $Hour, $Min
    If $Hour <> @HOUR Then
    ControlSetText('Stehene Uhr', '', 'Edit1', @HOUR)
    $Hour = @HOUR
    EndIf
    If $Min <> @MIN Then
    ControlSetText('Stehene Uhr', '', 'Edit2', @MIN)
    $Min = @MIN
    EndIf
    ControlSetText('Stehene Uhr', '', 'Edit3', @SEC)
    EndFunc ;==>SetTime

    [/autoit]
  • Raupi

    Ja das ist schon das Richtige Bloß jetzt passiert folgenes wenn die Sekunde auf 60 kommt weicht das Skript vom Fenster weg und nimmt einfach die Systemuhr von Windows. Das Skript Selber ist so in Ordnung doch wieso springt das Skript vom Aktiven
    Fenster Weg und nimmt anstelle die zeit des Fenster die Systemuhr von Windows?? ?(


    Gruß Baron

  • Hallo an Alle!

    Ich Brauche dringend Hilfe komme immer noch nicht weiter möchte gern auch das dieses Thema gelöst ist.

    und zwar hat mir Raupi mir dieses Skript gebastellt

    Spoiler anzeigen
    [autoit]

    ;~ #include <GUIConstantsEx.au3>
    ;~ $Form1 = GUICreate("Uhr zu leben rufen", 625, 109, 192, 124)
    ;~ $Input1 = GUICtrlCreateInput("", 48, 32, 113, 21)
    ;~ $Input2 = GUICtrlCreateInput("", 200, 32, 137, 21)
    ;~ $Input3 = GUICtrlCreateInput("", 392, 32, 169, 21)
    ;~ GUISetState(@SW_SHOW)
    ;~ #EndRegion ### END Koda GUI section ###

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

    ;~ $XX = ControlGetText('Stehene Uhr','','Edit1')
    ;~ ControlSetText('Uhr zu leben rufen','','Edit1',$XX)

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

    ;~ $YY = ControlGetText('Stehene Uhr','','Edit2')
    ;~ ControlSetText('Uhr zu leben rufen','','Edit2',$YY)

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

    ;~ $ZZ = ControlGetText('Stehene Uhr','','Edit3')
    ;~ ControlSetText('Uhr zu leben rufen','','Edit3',$ZZ)
    AdlibRegister("SetTime", 1000)

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

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

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

    ;~ Case $Input1

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

    ;~ Case $Input2
    ;~ Case $Input3
    ;~ EndSwitch
    WEnd

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

    Func SetTime()
    Local Static $Hour, $Min
    If $Hour <> @HOUR Then
    ControlSetText('Stehene Uhr', '', 'Edit1', @HOUR)
    $Hour = @HOUR
    EndIf
    If $Min <> @MIN Then
    ControlSetText('Stehene Uhr', '', 'Edit2', @MIN)
    $Min = @MIN
    EndIf
    ControlSetText('Stehene Uhr', '', 'Edit3', @SEC)
    EndFunc ;==>SetTime

    [/autoit]

    Wenn ich das Skript Starte scheint es auf dem ersten Blick zu Funkionieren doch er nimmt nicht meine Zeit sondern die Zeit vom Windows System bei die Sekunden feld es nicht auf sobald aber die Sekunde durch ist also auf null kommt dann ändert sich auch die Minuten und nimmt da auch die Windows Systemzeit. Das Heisst ich habe im meiner Gui z.B. 13:44:13 (HH:MM:SS) und Windows ist es jetzt z.B. 18:52:44 (HH:MM:SS) und das Skript Startet und ändert erst die Sekunden auf 44 Sekunden wobei eigendlich die 14 Sekunden kommen Müsste sobald die Sekunde auf 60 kommt also auf null dann ändert sich die Minute auf 52 des WinSystemuhr wobei er eigendlich 45 Minuten zeigen soll vom Skript.

    Ich wollte eigenendlich meine eigene Uhrzeit haben die nicht identisch mit der Windows Uhr ist.

    Das müsste doch ihrgendwie zu schafen sein ich komme einfach nicht weiter bitte bitte um Hilfe .


    Gruß Baron

    • Offizieller Beitrag

    Probier das:

    [autoit]

    #include <Date.au3>
    Global $iDateCalc
    $XX = ControlGetText('Stehene Uhr', '', 'Edit1')
    $YY = ControlGetText('Stehene Uhr', '', 'Edit2')
    $ZZ = ControlGetText('Stehene Uhr', '', 'Edit3')
    $iDateCalc = _DateDiff('s', _NowCalc(), @YEAR & "/" & @MON & "/" & @MDAY & " " & $XX & ":" &$YY& ":" & $ZZ)
    AdlibRegister("SetTime", 1000)

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

    While 1
    Sleep(50)
    WEnd

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

    Func SetTime()
    Local $NowTime = _DateAdd("s", $iDateCalc, _NowCalc())
    Local $Split = StringSplit($NowTime, ":", 2)
    If IsArray($Split) Then
    ControlSetText('Stehene Uhr', '', 'Edit1', StringRight($Split[0], 2))
    ControlSetText('Stehene Uhr', '', 'Edit2', $Split[1])
    ControlSetText('Stehene Uhr', '', 'Edit3', $Split[2])
    EndIf
    EndFunc ;==>SetTime

    [/autoit]
    • Offizieller Beitrag

    Na, dann kannst du den Thread ja auch auf gelöst setzen.