Do-Schleife beenden, CtrlText - sehr simples Skript

  • Mein Code mit seinen Problemen:

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 205, 70, (@DesktopWidth-205), (@DesktopHeight-70), BitOR($WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS), BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
    $Button1 = GUICtrlCreateButton("...", 0, 0, 200, 65, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###

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

    Func maction()
    $warnung = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, BitOR($WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS), $WS_EX_WINDOWEDGE)
    ; Text wird nicht angezeigt
    GUICtrlCreateLabel("Warnung!", 50, 50)
    GUICtrlSetFont(-1, 100)
    GUICtrlSetColor(-1, 0x1e90ff)
    ; Wie kann ich den Text zentrieren?
    GUISetBkColor(0xFF0000)
    GUISetState(@SW_MAXIMIZE)
    GUISetState(@SW_SHOW)
    Do
    SoundPlay("audio.mp3")
    GUISetBkColor(0xFF0000)
    Sleep(750)
    GUISetBkColor(0xFFFF00)
    Sleep(750)
    GUISetBkColor(0xFF0000)
    Sleep(750)
    GUISetBkColor(0xFFFF00)
    Sleep(750)
    ; Schleife lässt sich nicht beenden
    Until GUIGetMsg() = $Button1
    GUIDelete($warnung)
    EndFunc

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

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

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

    Am unteren Bildschirmrand soll ein Button sein. Wenn man diesen anklickt, soll der Bildschirm blinken und es soll "Warnung!" angezeigt werden. Zusätzlich soll eine MP3 abgespielt werden. Nach einem erneuten Klick auf den Button soll das Warnfenster wieder geschlossen werden, der Button aber nicht.

    Ich sitze schon seit Stunden an diesem einfachen Problem und hoffe, dass jemand helfen kann! Danke!

  • Hallo petter2,

    ich würde soetwas über Adlib lösen:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 205, 70, (@DesktopWidth - 205), (@DesktopHeight - 70), BitOR($WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS), BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
    $Button1 = GUICtrlCreateButton("...", 0, 0, 200, 65, $WS_GROUP)
    GUISetState(@SW_SHOW)
    $warnung = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, BitOR($WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS), $WS_EX_WINDOWEDGE)
    GUICtrlCreateLabel("Warnung!", 50, 50,@DesktopWidth - 100, @DesktopHeight -100,$SS_CENTER)
    GUICtrlSetFont(-1,14,2000)
    ;GUICtrlSetFont(-1, 100)
    GUICtrlSetColor(-1, 0x1e90ff)
    GUISetBkColor(0xFF0000)
    GUISetState(@SW_MAXIMIZE)
    GUISetState(@SW_HIDE)
    $bStop = True
    $iState = 0
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $bStop = Not $bStop
    If Not $bStop Then
    GUISetState(@SW_SHOW, $warnung)
    AdlibRegister("_blink", 750)
    Else
    AdlibUnRegister("_blink")
    GUISetState(@SW_HIDE, $warnung)
    EndIf
    EndSwitch
    WEnd

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

    Func _blink()
    $iState += 1
    Switch $iState
    Case 1
    SoundPlay("audio.mp3")
    GUISetBkColor(0xFF0000)
    Case 2
    GUISetBkColor(0xFFFF00)
    Case 3
    GUISetBkColor(0xFF0000)
    Case 4
    GUISetBkColor(0xFFFF00)
    Case 5
    $iState = 0
    EndSwitch
    EndFunc ;==>_blink

    [/autoit]

    mfg autoBert