Frage zu GUI

  • Hey Community,
    habe folgendes Script geschrieben

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\Eigene Dateien\Downloads\Windows-media-player.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstants.au3>
    #include <IE.au3>
    Opt("TrayMenuMode", 1)
    #region ### START Koda GUI section ### Form=
    If WinExists ( "Radio Streamer") Then
    MsgBox (48,"Achtung","Radio Streamer läuft bereits!")
    Exit
    Else
    $Form1 = GUICreate("Radio Streamer", 424, 112, @DesktopHeight / 2 - 100, @DesktopWidth / 2 - 250)
    $zeigen = TrayCreateItem("Zeigen")
    $hidden = TrayCreateItem("Verstecken")
    TrayCreateItem("")
    $exit = TrayCreateItem("Exit")
    GUISetBkColor(0xC0C0C0)
    $List1 = GUICtrlCreateList("", 0, 14, 125, 97)
    _IEErrorHandlerRegister()
    $oIE = _IECreateEmbedded()
    GUICtrlSetData(-1, "HardBase.fm|HouseTime.fm|TechnoBase.fm|TranceBase.fm")
    $Label1 = GUICtrlCreateLabel("Wähle ein Radio aus.", 10, 0, 106, 13)
    $Group1 = GUICtrlCreateObj($oIE, 126, 0, 297, 65)
    $Home = GUICtrlCreateButton("Hinz.", 130, 84, 47, 21, 0)
    $Spielen = GUICtrlCreateButton("Spielen", 184, 84, 47, 21, 0)
    $Stop = GUICtrlCreateButton("Save", 238, 84, 47, 21, 0)
    $Save = GUICtrlCreateButton("Credits", 292, 84, 47, 21, 0)
    $slider = GUICtrlCreateSlider (350,84,70,20)
    GUICtrlSetLimit(-1, 100, 0)
    GUISetState(@SW_SHOW)
    $Form1 = GUICreate("Hinzufügen", 136, 69, @DesktopWidth/ 2 - 50, 0,$WS_POPUP)
    $Label1 = GUICtrlCreateLabel("Name", 0, 0, 32, 17)
    $Label2 = GUICtrlCreateLabel("Url", 0, 22, 17, 17)
    GUICtrlCreateInput("", 32, 0, 101, 21)
    GUICtrlCreateInput("", 32, 20, 101, 21)
    $OK = GUICtrlCreateButton("OK", 2, 44, 53, 21, 0)
    $Beispiel = GUICtrlCreateButton("Beispiel", 70, 44, 53, 21, 0)
    GUISetState(@SW_HIDE)
    EndIf
    #endregion ### START Koda GUI section ### Form=
    TraySetState()
    GUICtrlSetData ($slider,100)
    While 1
    $musik = GUICtrlRead ($slider)
    SoundSetWaveVolume ($musik)
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Home
    GUISetState (@SW_SHOW,$Form1)
    GUISwitch ($Form1)
    Case $Spielen
    $seite = GUICtrlRead($List1)
    If $seite = "TechnoBase.fm" Then
    _IENavigate($oIE, "http://www.technobase.fm/wmplayer.php?Stream=http://DSL.TechnoBase.eu/listen-dsl.asx")
    ElseIf $seite = "HardBase.fm" Then
    _IENavigate($oIE, "http://www.hardbase.fm/wmplayer.php?Stream=http://mp3.hardbase.fm/listen.asx")
    ElseIf $seite = "HouseTime.fm" Then
    _IENavigate($oIE, "http://www.surfmusik.de/radio/housetime-fm,10832.html")
    ElseIf $seite = "TranceBase.fm" Then
    _IENavigate($oIE, "http://www.trancebase.fm/wmplayer.php?Stream=http://mp3.TranceBase.fm/listen.asx")
    EndIf
    Case $Stop
    GUISetState(@SW_HIDE)
    $msgbox = MsgBox(52, "Achtung", "Diese Datei kann man meines Wissens nur mit dem VLC Media Player öffnen!" & @CRLF & "Möchtest du fortfahren?")
    If $msgbox = 6 Then
    _IEAction($oIE, "saveas")
    GUISetState(@SW_SHOW)
    Else
    GUISetState(@SW_SHOW)
    EndIf
    Case $Save
    GUISetState(@SW_HIDE)
    MsgBox(48, "Credits", "Credits gehen an .au3 von http://www.forum.cp-g.net")
    GUISetState(@SW_SHOW)
    EndSwitch
    $msg = TrayGetMsg()
    Switch $msg
    Case $exit
    ExitLoop
    Case $zeigen
    WinSetState("Radio Streamer", "", @SW_SHOW)
    WinActivate ("Radio Streamer")
    Case $hidden
    WinSetState("Radio Streamer", "", @SW_HIDE)
    Case $OK
    MsgBox (0,"","test")
    EndSwitch
    WEnd
    GUIDelete()
    Exit

    [/autoit]

    Nun möchte ich das auch die Buttons der 2. GUi erkannt werden.
    Wie tue ich das?
    Das

    [autoit]

    GUISwitch

    [/autoit]

    hat nichts gebrahct.

  • GUIGetMsg(1) auch in der Hilfe beschrieben, und keine doppelten Variablennamen - erst ist bei dir $Form1 die erste GUI und dann die 2te

    • Offizieller Beitrag

    So des veränderte Script:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=..\Eigene Dateien\Downloads\Windows-media-player.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Opt("TrayMenuMode", 1)
    #Region ### START Koda GUI section ### Form=
    If WinExists("Radio Streamer") Then
    MsgBox(48, "Achtung", "Radio Streamer läuft bereits!")
    Exit
    Else
    $Form1 = GUICreate("Radio Streamer", 424, 112, @DesktopHeight / 2 - 100, @DesktopWidth / 2 - 250)
    $zeigen = TrayCreateItem("Zeigen")
    $hidden = TrayCreateItem("Verstecken")
    TrayCreateItem("")
    $exit = TrayCreateItem("Exit")
    GUISetBkColor(0xC0C0C0)
    $List1 = GUICtrlCreateList("", 0, 14, 125, 97)
    _IEErrorHandlerRegister()
    $oIE = _IECreateEmbedded()
    GUICtrlSetData(-1, "HardBase.fm|HouseTime.fm|TechnoBase.fm|TranceBase.fm")
    $Label1 = GUICtrlCreateLabel("Wähle ein Radio aus.", 10, 0, 106, 13)
    $Group1 = GUICtrlCreateObj($oIE, 126, 0, 297, 65)
    $Home = GUICtrlCreateButton("Hinz.", 130, 84, 47, 21, 0)
    $Spielen = GUICtrlCreateButton("Spielen", 184, 84, 47, 21, 0)
    $Stop = GUICtrlCreateButton("Save", 238, 84, 47, 21, 0)
    $Save = GUICtrlCreateButton("Credits", 292, 84, 47, 21, 0)
    $slider = GUICtrlCreateSlider(350, 84, 70, 20)
    GUICtrlSetLimit(-1, 100, 0)
    GUISetState(@SW_SHOW)
    $Form2 = GUICreate("Hinzufügen", 136, 69, @DesktopWidth / 2 - 50, 0, $WS_POPUP)
    $Label1 = GUICtrlCreateLabel("Name", 0, 0, 32, 17)
    $Label2 = GUICtrlCreateLabel("Url", 0, 22, 17, 17)
    GUICtrlCreateInput("", 32, 0, 101, 21)
    GUICtrlCreateInput("", 32, 20, 101, 21)
    $OK = GUICtrlCreateButton("OK", 2, 44, 53, 21, 0)
    $Beispiel = GUICtrlCreateButton("Beispiel", 70, 44, 53, 21, 0)
    GUISetState(@SW_HIDE)
    EndIf
    #EndRegion ### START Koda GUI section ### Form=
    TraySetState()
    GUICtrlSetData($slider, 100)
    While 1
    $musik = GUICtrlRead($slider)
    SoundSetWaveVolume($musik)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Home
    GUISetState(@SW_SHOW, $Form2)
    Case $Spielen
    $seite = GUICtrlRead($List1)
    If $seite = "TechnoBase.fm" Then
    _IENavigate($oIE, "http://www.technobase.fm/wmplayer.php?Stream=http://DSL.TechnoBase.eu/listen-dsl.asx")
    ElseIf $seite = "HardBase.fm" Then
    _IENavigate($oIE, "http://www.hardbase.fm/wmplayer.php?Stream=http://mp3.hardbase.fm/listen.asx")
    ElseIf $seite = "HouseTime.fm" Then
    _IENavigate($oIE, "http://www.surfmusik.de/radio/housetime-fm,10832.html")
    ElseIf $seite = "TranceBase.fm" Then
    _IENavigate($oIE, "http://www.trancebase.fm/wmplayer.php?Stream=http://mp3.TranceBase.fm/listen.asx")
    EndIf
    Case $Stop
    GUISetState(@SW_HIDE)
    $msgbox = MsgBox(52, "Achtung", "Diese Datei kann man meines Wissens nur mit dem VLC Media Player öffnen!" & @CRLF & "Möchtest du fortfahren?")
    If $msgbox = 6 Then
    _IEAction($oIE, "saveas")
    GUISetState(@SW_SHOW)
    Else
    GUISetState(@SW_SHOW)
    EndIf
    Case $Save
    GUISetState(@SW_HIDE)
    MsgBox(48, "Credits", "Credits gehen an .au3 von http://www.forum.cp-g.net")
    GUISetState(@SW_SHOW)
    Case $OK
    MsgBox(0, "Info", "OK wurde gedrückt", 3)
    GUISetState(@SW_HIDE, $Form2)
    Case $Beispiel
    MsgBox(0, "Info", "Beispiel wurde gedrückt", 3)
    GUISetState(@SW_HIDE, $Form2)
    EndSwitch
    $msg = TrayGetMsg()
    Switch $msg
    Case $exit
    ExitLoop
    Case $zeigen
    WinSetState("Radio Streamer", "", @SW_SHOW)
    WinActivate("Radio Streamer")
    Case $hidden
    WinSetState("Radio Streamer", "", @SW_HIDE)
    Case $OK
    MsgBox(0, "", "test")
    EndSwitch
    WEnd
    GUIDelete()
    Exit

    [/autoit]


    Edit wollte eigentlich zu den Veränderungen was schreiben, hat aber mein Vorredner schon getan :thumbup:

    Edit2 damit r1fLex auch alles mitbekommt:

    1. hab ich mal die Hinzufügengui als $Form2 definiert. 2 Guis mit dem selben VarName ist humbug.
    2. den erweiterten GuiGetMsg entfernt den brauchst du bei dem Script nicht.
    3. Des GuiSwitch entfernt läuft auch so.
    4. eine Abfrage für den Hinzufügen und den Beispiel Button als Test in die GuiGetMsg-abfrage eingefügt.

    • Offizieller Beitrag

    Ähm, kannst du lesen oder soll man dir alles Vorkauen ? Lies dein Script und dann meine Version und du weißt es . 8o
    Und noch was ein Abbrechen-Button bei der 2. GUI wäre Sinnvoll.
    Bevor dein Kopf anfängt zu Rauchen , Beschreibung bei meinem letzten Post hinzugefügt.

    • Offizieller Beitrag

    Da du ja scheinbar jetzt kein Gui Prob mehr hast könntest du den thread auch als gelöst markieren.