Winsetstate Problem

  • Ich bin an einem Projekt am Arbeiten, mit dem Fenster auf Tasten/Button druck minimiert und versteckt werden (@SW_Show/@SW_Hide/@SW_Minimize/@SW_Maximize).


    Nun habe ich das Problem, dass alles minimiert wird, aber seit ich die zusatz funktion mit arrays eingebaut habe (vorher konnte nur ein Fenster versteckt werden), wird nur minimiert und versteckt, wenn ich aber mit buttonklick oder hotkeyset das zuletzt versteckte fenster wieder sichtbar machen will, wird stattdessen mein hauptgui ($meingui) maximiert! danach kann ich noch sooft auf den button/hotkey drücken, wie ich fenster versteckt habe, danach erst kommt die hinweisnachricht, dass kein fenster mehr versteckt ist.


    Bin echt ratlos ?( , würde mich sehr über eure Hilfe freuen!!!


    :thumbup:

    Danke schon im voraus für die Antworten!

    Hier mein Script:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiScrollBars.au3>
    #include <array.au3>
    $anzahlverfen = 1
    Dim $title[10]
    $title[0] = 1999
    $guistatus = 0
    $meinGui = GuiCreate("Kontroll Programm",275,130)
    $ok = GUICtrlCreateButton("&verstecken",5,5,80,20)
    $back = GuiCtrlCreateButton("&zeigen",85,5,80,20)
    $cancel = GUICtrlCreateButton("&Cancel",170,5,80,20)
    GuiCTRLCreateLabel("Sie haben 5 sek Zeit, das Fenster auszuwählen!",5,30)
    $fenster = GuiCtrlCreateButton("Dieses Fenster Verstecken!",5,55,200,20)
    $info = GuiCTRLCreateButton("Info",85,80,30,20)
    GUISetState(@SW_SHOW,$meinGUI)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $OK
    sleep(5000)
    verstecken()
    Case $back
    zeigen()
    Case $fenster
    GUISetState(@SW_Hide, $meinGUI)
    $guistatus = 1
    Case $info
    $f2 = GuiCreate("Programm Info",500,200)
    GuiCtrlCreateLabel("Drücken sie F6, um das Kontroll-Fenster wieder sichtbar zu machen!",5,5)
    GuiCtrlCreateLabel("Drücken sie F9, um ein Verstecktes Fenster wieder anzuzeigen!",5,25)
    GuiCtrlCreateLabel("Drücken sie F10, um ein Fenster zu verstecken!",5,50)
    GuiCtrlCreateLabel("Drücken sie F11, um das Programm zu beenden!",5,75)
    GuiCtrlCreateLabel("Wenn sie F10 drücken, wird das Fenster sofort unsichtbar gemacht, nicht erst nach 5sek!",5,75)
    $eulabutton = GuiCtrlCreateButton("Eula",95,175,30,20)
    $cancel2 = GUICtrlCreateButton("&Cancel",5,175,80,20)
    GUISetState(@SW_SHOW,$f2)
    While 1
    $2Msg = GuigetMsg()
    Switch $2Msg
    Case $cancel2
    GUIDelete($f2)
    ExitLoop
    Case $eulabutton
    EULA()
    EndSwitch
    sleep(10)
    WEnd
    Case $Cancel
    Exit
    EndSwitch
    Sleep(10)
    Hotkeyset("{F10}","verstecken")
    Hotkeyset("{F6}","meinGUIzeigen")
    Hotkeyset("{F9}","zeigen")
    Hotkeyset("{F11}","ende")
    WEnd
    Func verstecken()
    $title[0]=1998
    $title[$anzahlverfen] = WinGetTitle("[active]","")
    WinSetState($title[$anzahlverfen],"",@SW_MinIMIZE)
    Winsetstate($title[$anzahlverfen],"",@SW_Hide)
    $anzahlverfen = $anzahlverfen+1
    EndFunc
    Func zeigen()
    If $title[0]=1999 Then
    MsgBox(48, "Hinweis", "Es ist kein Fenster versteckt worden!")
    Else
    If $anzahlverfen<>1 Then
    WinSetState($title[$anzahlverfen],"",@SW_MAXIMIZE)
    Winsetstate($title[$anzahlverfen],"",@SW_Show)
    $anzahlverfen = $anzahlverfen-1
    EndIf

    If $anzahlverfen = 1 Then
    $title[0]=1999
    EndIf
    EndIf
    EndFunc
    Func meinGuizeigen()
    IF $guistatus = 0 Then
    GUISetState(@SW_Hide, $meinGui)
    $guistatus = 1
    Else
    GuiSetState(@SW_Show, $meinGui)
    $guistatus = 0
    Endif
    EndFunc
    Func ende()
    Exit
    EndFunc

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

    Func EULA()
    $eulagui = GuiCreate("EULA",400,230)
    GuiCtrlCreateLabel("© by Patrick Nolte",5,5)
    GuiCtrlCreateLabel("All rights reserved!",5,25)
    GuiCtrlCreateLabel("Alle Rechte liegen bei Patrick Nolte! Er übernimmt keine Haftung",5,50)
    GuiCtrlCreateLabel("für eventuell durch dieses Programm entstehende Schäden!",15,75)
    GuiCtrlCreateLabel("Ebenfalls Haftet er nicht für Schäden, die durch Software entsteht,",5,100)
    GuiCtrlCreateLabel("die durch dieses Programm auf das Gerät des Nutzers gekommen ist.",15,125)
    GuiCtrlCreateLabel("Es ist nicht erlaubt, diese Software, oder Teile von ihr zu verkaufen,",5,150)
    GuiCtrlCreateLabel("weiter zu verwenden oder anders zu nutzen, als die Software es vorsieht!",15,175)
    $cancel3 = GuiCtrlCreateButton("&cancel",5,200,80,20)
    GUISetState(@SW_Show, $eulagui)
    While 1
    $3Msg = GuigetMsg()
    Switch $3Msg
    Case $cancel3
    GUIDelete($eulagui)
    ExitLoop
    EndSwitch
    sleep(10)
    WEnd
    EndFunc

    [/autoit]
  • Wenn nach "Hier ist mein Script:" noch etwas kommen würde, könnten wir dir vielleicht helfen... :pinch:

    Gruss Shadowigor