Du solltest dir angewöhnen, alle GUIs am Anfang des Scripts zu erstellen und später im Script einfach sichtbar/unsichtbar zu schalten.
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 192, 138, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close", $Form1)
$Button1 = GUICtrlCreateButton("öffne form2", 54, 52, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "Form2")
GUISetState(@SW_SHOW)
$Form2 = GUICreate("Form2", 192, 138, 192, 124, BitOR($WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_BORDER, $WS_CLIPSIBLINGS), BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
GUISetOnEvent($GUI_EVENT_CLOSE, "schliessen", $Form2)
$Button2 = GUICtrlCreateButton("schliessen", 54, 52, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "schliessen")
While 1
Sleep(100)
WEnd
Func Form2()
GUISetState(@SW_SHOW, $Form2)
EndFunc ;==>Form2
Func Form1Close()
Exit
EndFunc
func schliessen()
GUISetState(@SW_HIDE,$Form2)
EndFunc