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!!!
Danke schon im voraus für die Antworten!
Hier mein Script:
Spoiler anzeigen
#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
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