Wartungsfenster die 2te

  • Hallo @ all

    so leider hab ich mein Problem noch nicht gelöst......

    wie kann ich in einer while schleife, in einer while schleife den OK button bzw alle buttons ausführen .......

    die buttons sind nur funktionstüchtig in der allerersten while Schleife.
    kann jemand mir helfen ? ich hab einen Knoten .....


    Spoiler anzeigen
    [autoit]


    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $BeginnWartungsZeit = "23:00:00"
    Global $SLEP = 20 ;Nicht sichtbarkeit des fensters
    $SLEP1 = $SLEP * 1000
    Global $sight = 40 ;Sichtbarkeit des fensters
    Global $sighti = $sight
    $sight1 = $sight * 1000

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

    Global $NowTimeDiff = _DateDiff('s', _NowCalc(), @YEAR & "/" & @MON & "/" & @MDAY & " " & $BeginnWartungsZeit)
    Global $iii = 0, $ii = 0, $i = 0, $wdh = Round($NowTimeDiff / ($SLEP + $sight), 0)
    If $wdh <= 0 Then Exit

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

    ;MsgBox(0, "", $wdh)
    Global $calctime = _TimeDiff($BeginnWartungsZeit)

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

    _wartungs_warnung()
    Exit

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

    Func _wartungs_warnung()
    #Region ### START Koda GUI section ### Form=c:\users\tom.uvw\documents\autoit\wartungs_warnung.kxf
    Local $Wartungs_Warnung = GUICreate("Warnung", 250, 164, -1, -1, Default, -1)
    Local $Abmelden = GUICtrlCreateButton("Jetzt Abmelden", 16, 128, 89, 25, $WS_GROUP)
    Local $WarnOK = GUICtrlCreateButton("&OK", 139, 128, 89, 25, $WS_GROUP)
    Global $zeit = GUICtrlCreateLabel("Es ist " & _NowTime(5) & " Uhr,", 15, 37, 155, 17)
    Global $calctim = GUICtrlCreateLabel("Sie können noch ca. " & $calctime & " arbeiten", 15, 59, 226, 17)
    Local $VD = GUICtrlCreateLabel("Vielen Dank für Ihr Verständniss", 23, 97, 195, 17)
    GUICtrlSetFont($VD, 8, 800, 0, "MS Sans Serif")
    Local $SGDH = GUICtrlCreateLabel("Sehr geehrte/r Frau/Herr & $DN &", 15, 8, 228, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    _Zaehler($zeit, $calctim)
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Abmelden
    MsgBox(0, "logoff", "logofff")
    Case $WarnOK
    ;~ GUISetState(@SW_HIDE, $Wartungs_Warnung)
    While $iii <= ($wdh - $SLEP)
    $iii = $iii + 1
    GUISetState(@SW_SHOW, $Wartungs_Warnung)
    MsgBox(0, "", "pause show " & $wdh & " " & $iii, 2)
    Local $a = 0
    While $a <= $sight ;Zeit fü��r die sicht des fensters
    $a = $a + 1
    _Zaehler($zeit, $calctim)
    ;~ MsgBox(0, "", "pause show " & $sight & " " & $a, 1)
    Sleep(900);Zeit fü��r die sicht des fensters
    If $a = $sight Then ExitLoop
    WEnd
    GUISetState(@SW_HIDE, $Wartungs_Warnung)
    ExitLoop
    WEnd
    While $iii <= ($wdh - $sight)
    $iii = $iii + 1
    GUISetState(@SW_HIDE, $Wartungs_Warnung)
    MsgBox(0, "", "pause hide " & $wdh & " " & $iii, 2)
    Local $a = 0
    While $a <= $SLEP ;Zeit fü��r die sicht des fensters
    $a = $a + 1
    _Zaehler($zeit, $calctim)
    ;~ MsgBox(0, "", "pause hide " & $SLEP & " " & $a, 1)
    Sleep(900);Zeit fü��r die sicht des fensters
    If $a = $SLEP Then ExitLoop
    WEnd
    ;~ Sleep($SLEP1);Zeit fü��r die nichtsicht des fensters
    GUISetState(@SW_SHOW, $Wartungs_Warnung)
    _Zaehler($zeit, $calctim)
    ExitLoop
    WEnd
    ;~ ExitLoop
    If $iii >= $wdh Then
    MsgBox(0, "logoff", "logofff")
    ExitLoop
    EndIf

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

    EndSwitch
    Sleep(30)
    WEnd

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

    EndFunc ;==>_wartungs_warnung

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

    Func _TimeDiff($BeginnWartungsZeit)
    Local $iDateCalc
    Local $timevar
    If _NowTime(5) <= $BeginnWartungsZeit Then
    Select
    Case _DateDiff('h', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit) < 2
    $iDateCalc = _DateDiff('h', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit)
    $timevar = "Stunde"
    Case _DateDiff('h', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit) > 0
    $iDateCalc = _DateDiff('h', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit)
    $timevar = "Stunden"
    Case _DateDiff('n', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit) < 2
    $iDateCalc = _DateDiff('n', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit)
    $timevar = "Minute"
    Case _DateDiff('n', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit) > 0
    $iDateCalc = _DateDiff('n', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit)
    $timevar = "Minuten"
    Case _DateDiff('s', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit) > 0
    $iDateCalc = _DateDiff('s', _NowCalc(), _NowCalcDate() & " " & $BeginnWartungsZeit)
    $timevar = "Sekunden"
    Case Else
    MsgBox(4096, "", " Die Messzeit ist weniger als eine Sekunde", 5)
    EndSelect
    Local $vornach = "unterschritten"
    Else
    Select
    Case _DateDiff('h', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc()) < 2
    $iDateCalc = _DateDiff('h', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc())
    $timevar = "Stunde"
    Case _DateDiff('h', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc()) > 0
    $iDateCalc = _DateDiff('h', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc())
    $timevar = "Stunden"
    Case _DateDiff('n', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc()) < 2
    $iDateCalc = _DateDiff('n', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc())
    $timevar = "Minute"
    Case _DateDiff('n', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc()) > 0
    $iDateCalc = _DateDiff('n', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc())
    $timevar = "Minuten"
    Case _DateDiff('s', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc()) > 0
    $iDateCalc = _DateDiff('s', _NowCalcDate() & " " & $BeginnWartungsZeit, _NowCalc())
    $timevar = "Sekunden"
    Case Else
    MsgBox(4096, "", " Die Messzeit ist weniger als eine Sekunde", 5)
    EndSelect
    Local $vornach = "ü��berschritten"
    EndIf
    Local $calctime = $iDateCalc & " " & $timevar
    Return $calctime
    EndFunc ;==>_TimeDiff
    Func _Zaehler($zeit, $calctim)

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

    $calctime = _TimeDiff($BeginnWartungsZeit)
    GUICtrlSetData($zeit, "Es ist " & _NowTime(5) & " Uhr,")
    GUICtrlSetData($calctim, "Sie können noch ca. " & $calctime & " arbeiten")
    EndFunc ;==>_Zaehler

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Kennst du den OnEvent-Modus bereits. Damit wird vieles einfacher.


    Du brauchst dazu Opt("GUIOnEventMode", 1)
    und schau dir das Hilfe-Beispiel zu GUISetOnEvent() an.

    Ja den modus hab ich schon Probiert :(
    hat leider auch nix genützt ... da wars sogar schlimmer (Das Problem ist dieses GUI is ja nicht standalone, sondern in einem Großen script als Function eingebunden)

    lg
    TOM