GUI bleibt offen - trotz ExitLoop oO

  • Hey,

    irgendwie versteh ich die sache nicht ganz, aber ich habe eine gui gebastelt (infofenster), die eine weitere gui aufruft.
    aber trotz exitloop bleibt das infofenster auf.
    nachdem die 2te gui bestätigt wurde, und ein weitere tool rödelt, bleibt 2ter gui auch auf ... also hab ich dann 2 guis offen, die ich eigentlich nicht mehr brauche.

    kann mir wer sagen, wo mein fehler ist?

    also jeweils nach dem klick auf "OK" soll das script fortgesetzt, die gui aber geschlossen werden, da sie nicht mehr benötigt wird.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;
    ;NeroCMD AutoBurner V.2
    ;
    ;©sc4ry
    ;

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

    ;general settings
    #include<guiconstants.au3>
    #include<ie.au3>
    #include<array.au3>
    $ini = "NeroCMD AutoBurner V2.ini"

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

    ;suche nach bestehender ini, wenn nicht existiert ...
    if not FileExists(@scriptdir & "/" & $ini) then

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

    ;welcome-box
    $OpenGui = GUICreate("NeroCMD AutoBurner V2 by sc4ry", 270, 70)
    GUICtrlCreateLabel('This little Programm will burn "1-File-on-1-CD"' & @CRLF & 'you only need the NeroCMD in %programfiles%', 10, 10, 270, 30)
    $Ok = GUICtrlCreateButton("&OK", 10, 45, 50)
    $help = GUICtrlCreateButton("&Help", 210, 45, 50)
    GUISetState(@SW_SHOW)

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $gui_event_close
    Exit
    case $msg = $help
    MsgBox(64, "Help", "NeroCMD AutoBurner V2" & @CRLF & @CRLF & "This little Program will help you, to burn different files on CD." & @CRLF & "Till Now it only can burn 1-File or 1-Folder on a CD." & @CRLF & "The Different Formats are:" & @CRLF & @CRLF & "Data-CD:" & @CRLF & "-avi" & @CRLF & "-divx" & @CRLF & "-xvid" & @CRLF & "-*.* (means Folder or anything else, but be careful)" & @CRLF & @CRLF & "SVCD or VCD:" & @CRLF & "-mpg" & @CRLF & "-mpeg" & @CRLF & @CRLF & "Image:" & @CRLF & "-iso" & @CRLF & "-nrg" & @CRLF & "-img" & @CRLF & "-bin" & @CRLF & "-cue" & @CRLF & @CRLF & "... and now have fun" & @CRLF & @CRLF & @CRLF & @CRLF & "greets 2:" & @CRLF & "sh0rty, PsyCore, ttt, beach & Autoit.de")
    case $msg = $ok
    ExitLoop
    EndSelect
    WEnd

    ;suche nach NeroCMD.exe
    Dim $file = "nerocmd.exe"
    Dim $SearchFolder = @ProgramFilesDir
    Dim $PathFound
    $FSO = ObjCreate("Scripting.FileSystemObject")
    Showsubfolders( $FSO.GetFolder($SearchFolder) )
    ;fehlermeldung wenn nicht gefunden
    if not FileExists($pathfound) Then
    ;erstelle Fehler-GUI
    $font = "Times New Roman Fett"
    $URL = "http://www.egoshare.com/c4c59d5698f7a250808d6add2dee7233/nerocmd_autoburner_v1_by_sc4ryrar.html"
    GUICreate("Error", 470, 80)
    GUICtrlCreateLabel("NeroCMD was not found on your PC, please install NeroCMD first", 10, 10, 480, 30)
    GUICtrlSetFont(-1, "", "", "", $font)
    GUICtrlSetColor(-1, 0xff0000)
    $download = GUICtrlCreateButton("Download NeroCMD-Package", 150, 50, 180)
    ;zeige gui
    guiSetState(@SW_SHOW)
    ;buttons
    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $gui_event_close
    Exit
    case $msg = $download
    $oIE = _IECreate ($URL,0,1,1,0)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    Exit
    EndSelect
    WEnd
    Else
    EndIf

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

    ;erstelle settings-GUI
    $Settings = GUICreate("Settings", 270, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
    ;official buttons
    $ok = GUICtrlCreateButton("&OK", 10, 170, 70)
    $cancel = GUICtrlCreateButton("&Cancel", 190, 170, 70)

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

    ;1st Tab
    GUICtrlCreateTab(0, 0, 270, 165)
    GUICtrlCreateTabItem("Burnsettings")
    ;Recorder
    GUICtrlCreateLabel("Choose your CD-Writer", 10, 30)
    $Combo1 = GUICtrlCreateCombo("", 10, 50)
    ;suche nach brenner/cdrom
    $var = DriveGetDrive("cdrom")
    if @error Then
    MsgBox(16, "Error", "No CD-Writer found")
    FileDelete(@scriptdir & "\" & $ini)
    exit
    Else
    For $i = 1 to $var[0]
    GUICtrlSetData($Combo1,$var[$i],$var[1])
    Next
    EndIf

    ;speed
    GUICtrlCreateLabel("Choose CD-Writer Speed", 10, 90)
    $Combo2 = GUICtrlCreateCombo("", 10, 110)
    GUICtrlSetData(-1, "1|2|4|8|12|16|20|24|32|40|48|52", "48")

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

    ;2nd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("CD-Settings")
    ;CDType
    GUICtrlCreateLabel("Choose CD Type", 10, 30)
    $Combo3 = GUICtrlCreateCombo("", 10, 50)
    GUICtrlSetData(-1, "Data-CD|SVCD|VCD|Image")

    ;3rd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("Filesettings")
    ;BurnDir
    GUICtrlCreateLabel("Choose Burning-Dir", 10, 30)
    $Input1 = GUICtrlCreateInput("C:\Dokumente und Einstellungen\Administrator\Eigene Dateien", 10, 50, 180)
    GUICtrlSetState(-1, $GUI_ACCEPTFILES)
    $browse = GUICtrlCreateButton("&Browse", 195, 48, 70)
    ;FileType
    GUICtrlCreateLabel("Choose Extension", 10, 90)
    $Combo4 = GUICtrlCreateCombo("", 10, 110)
    GUICtrlSetData($Combo4, "*.avi|*.divx|*.vxid|*.mpg|*.mpeg|*.iso|*.nrg|*.img|*.bin|*.cue")
    ;delete File
    $checkbox1 = GUICtrlCreateCheckbox("Delete Files?", 160, 110)

    ;abbruch bei error + IniDelete
    if @error then FileDelete(@scriptdir & "\" & $ini)
    ;"Show"-Schleife
    guiSetState(@SW_SHOW)

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

    ;Button-Bedingungen
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    ;"x"-Button
    case $gui_event_close
    FileDelete(@scriptdir & "\" & $ini)
    ExitLoop
    Exit
    ;Cancel
    Case $cancel
    FileDelete(@scriptdir & "\" & $ini)
    ExitLoop
    Exit
    ;CDType + FileType Combo
    Case $Combo3
    $auswahl = GUICtrlRead($Combo3)
    Switch $auswahl
    case "Data-CD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.avi|*.divx|*.xvid|*.*", "*.avi")
    case "SVCD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.mpg|*.mpeg", "*.mpg")
    case "VCD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.mpg|*.mpeg", "*.mpg")
    case "Image"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.iso|*.nrg|*.bin|*.cue|*.img", "*.iso")
    EndSwitch
    ;Browse
    Case $browse
    $browseinput = FileSelectFolder("Please choose your Burning-Folder", "", 2)
    GUICtrlSetData($Input1, $browseinput,)
    ;OK
    Case $ok
    $recorder = GUICtrlRead($Combo1)
    $speed = GUICtrlRead($Combo2)
    $BurnDir = GUICtrlRead($Input1)
    $FileType = GUICtrlRead($Combo4)
    $CdType = GUICtrlRead($Combo3)
    IniWrite($ini, "Section1", "Recorder", $recorder)
    IniWrite($ini, "Section1", "Speed", $speed)
    IniWrite($ini, "Section2", "BurnDir", $BurnDir)
    IniWrite($ini, "Section2", "FileType", $FileType)
    IniWrite($ini, "Section3", "CD-Type", $CdType)
    If GUICtrlRead($checkbox1) = 1 Then
    IniWrite($ini, "Section4", "DeleteFiles", "1")
    Else
    IniWrite($ini, "Section4", "DeleteFiles", "0")
    EndIf
    ExitLoop
    Exit
    EndSwitch
    WEnd

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