Gui schließt sich sofort

  • Hallo zusammen,

    ich habe eine GUI erstellt leider schließt sich diese immer wieder sobald ich das skript ausführe

    func Menu()
    ;Variables for func Menu:
    Local $iMsg
    Local $iGUIWidth = 120, $iGUIHeight = 450

    ; Aufbau der Gui
    Local $windows = GUICreate ("SAP Helper GUI", $iGUIWidth, $iGUIHeight)
    Local $FileMenu = GUICtrlCreateMenu("File")
    Local $idExitItem = GUICtrlCreateMenuItem("Exit", $FileMenu)
    Local $HelpMenu = GUICtrlCreateMenu("?")
    Local $idAboutItem = GUICtrlCreateMenuItem("About", $HelpMenu)

    ;Aufbau der Buttons
    ;Breite; Höhe GuiFenster; Länge des Button; Höhe des Button
    Local $Button1 = GUICtrlCreateButton("Plan Jobs", 5, 25, 90, 30)
    Local $Button2 = GUICtrlCreateButton("Switch Kernel", 5, 65, 90, 30)
    Local $Button3 = GUICtrlCreateButton("Move IFMS File", 5, 105, 90, 30)
    Local $Button4 = GUICtrlCreateButton("Change Pass.", 5, 145, 90, 30)
    Local $Button5 = GUICtrlCreateButton("Exit", 5, 400, 90, 30)

    GUISetState()
    ;Starte Menu
    While 1
    Switch GUIGetMsg()

    Case $iMsg = $idExitItem
    ExitLoop

    Case $iMsg = $idAboutItem
    MsgBox($MB_SYSTEMMODAL, "About", "GUI Menu Test")

    Case $iMsg = $Button1
    PlanJobs()

    Case $iMsg = $Button2
    switchkernel()

    Case $iMsg = $Button3
    moveifms()

    Case $iMsg = $Button4
    changepass()

    Case $iMsg = $Button5
    MsgBox($MB_SYSTEMMODAL, "Bye, bye", "Programm will timeout after 5 seconds or select the OK button.", 5)
    ExitLoop

    EndSwitch
    WEnd
    EndFunc

    Menu()

    eventuell hat jemand eine idee

    • Offizieller Beitrag

    Du nutzt zur Messageabfrage Switch und benutz aber die Case Abfragen, als ob du Select benutzen würdest.
    Asserdem hat $iMsg keinen Wert, weil du die Variable nie setzt und somit trifft die 1. Case Abfrage immer zu .

    Abfrage mit Swich:

    [autoit]

    While 1
    $iMsg = GUIGetMsg()
    Switch $iMsg

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

    Case $idExitItem
    ExitLoop

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

    Case $idAboutItem
    MsgBox($MB_SYSTEMMODAL, "About", "GUI Menu Test")

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

    Case $Button1
    PlanJobs()

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

    Case $Button2
    switchkernel()

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

    Case $Button3
    moveifms()

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

    Case $Button4
    changepass()

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

    Case $Button5
    MsgBox($MB_SYSTEMMODAL, "Bye, bye", "Programm will timeout after 5 seconds or select the OK button.", 5)
    ExitLoop

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

    EndSwitch
    WEnd

    [/autoit]

    Abfrage mit Select:

    [autoit]

    While 1
    $iMsg = GUIGetMsg()

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

    Select
    Case $iMsg = $idExitItem
    ExitLoop

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

    Case $iMsg = $idAboutItem
    MsgBox($MB_SYSTEMMODAL, "About", "GUI Menu Test")

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

    Case $iMsg = $Button1
    PlanJobs()

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

    Case $iMsg = $Button2
    switchkernel()

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

    Case $iMsg = $Button3
    moveifms()

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

    Case $iMsg = $Button4
    changepass()

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

    Case $iMsg = $Button5
    MsgBox($MB_SYSTEMMODAL, "Bye, bye", "Programm will timeout after 5 seconds or select the OK button.", 5)
    ExitLoop

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

    EndSelect
    WEnd

    [/autoit]