Grüße!
Ich bin erst seit kurzem "Mitglied der gemeinen AutoIT'ler", aber hab bisher - wie ich finde schon recht gut geschafft was mein Programmziel angeht.
Dabei ist aber ein kleines - eher fatales wie seltsames - Problem aufgetreten.
Und zwar... bei Programmausführung erscheint Fenster1, es lädt einige Daten aus der Registrierung, holt sich einige per WMI queries usw und sofort.
Am Ende des "Ladeprozesses" überprüft er die gefundenen Daten.
In einem Fall, wenn 2 spezifische Werte ungleich leer ( <> "" ) sind, dann soll er zu Funktion X springen.
Funktion X erstellt ein neues Fenster mit 2 Buttons zur Entscheidung welcher der gefundenen Werte nun genommen werden soll.
Danach soll(te) das Hauptfenster starten.
So, tut es auch, aber schließt sich direkt wieder.
Aber das ganze mal als Code...
[autoit]include ...
[/autoit][autoit][/autoit][autoit]Opt("GUIOnEventMode", 1)
; ### Launcher Start ###
; # Launcher: UI Start #
Launcher = GUICreate("Launcher", 345, 136, 496, 308)
; [...] einige Labels etc...
[/autoit][autoit][/autoit][autoit]GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
; # Launcher: GUI Ende #
; # Launcher: Datensammlung #
[/autoit][autoit][/autoit][autoit]; [...] Befehle, Abfragen, Variablen...
[/autoit][autoit][/autoit][autoit]; # Launcher: Datensammlung Ende #
[/autoit][autoit][/autoit][autoit]; # Launcher: Datenüberprüfung #
If $var1 = "" AND $var2 = "" Then
; [...] Fehlerausgabe... Aufforderung für manuelle Eingabe
ElseIf $var1 <> "" AND $var <> "" Then
Function_X()
EndIf
; # Launcher: Datenüberprüfung Ende #
; ### Launcher Ende ###
; [...] viele Funktionen (func)
[/autoit][autoit][/autoit][autoit]Func Function_X()
$Launcher_X = GUICreate("Launcher - Entscheidung", 423, 130, 484, 456)
; [...] viele Labels
[/autoit][autoit][/autoit][autoit]$B_1 = GUICtrlCreateButton("Mögl.1", 72, 72, 107, 41, 0)
GUICtrlSetFont(-1, 11, 800, 0, "Microsoft Sans Serif")
$B_2 = GUICtrlCreateButton("Mögl.2", 232, 72, 107, 41, 0)
GUICtrlSetFont(-1, 12, 800, 0, "Microsoft Sans Serif")
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
GUISetOnEvent($B_1, "Button_1")
GUISetOnEvent($B_2, "Button_2")
EndFunc
; [...] noch mehr Funktionen
[/autoit][autoit][/autoit][autoit]; ### primäres GUI ###
; [...] einige Bedingungen zwecks Label-Anpassung
$Main = GUICreate("main", 385, 277, 490, 300)
[/autoit][autoit][/autoit][autoit]; [...] Buttons, Labels, Tabs, OnEvent's....
[/autoit][autoit][/autoit][autoit]GUISetState(@SW_SHOW)
; ### prim. GUI Ende ###
; ### window events ###
[/autoit][autoit][/autoit][autoit]Func CLOSEclick()
If @GUI_WinHandle = $Launcher OR @GUI_WinHandle = $Main Then
Exit
Elseif @GUI_WinHandle = $Launcher_X
; Variablen setzen
EndIf
EndFunc
Func Button_1()
; Variablen setzen
EndFunc
Func Button_2()
; Variablen setzen
EndFunc
; Die restlichen OnEvent-Funktionen stehen als "Rohlinge" drunter, aber bisher ohne Aktionen
[/autoit]Der genaue "Verlauf" im jetzigen Status ist halt der...
Er startet den Launcher, ruft die ganzen Daten ab... ruft die Funktion Launcher_X() auf (in meinem Fall, da beide Werte <> "" sind) und damit das 2. Fenster zur "Entscheidung" auf, welches sich sofort wieder schließt, danach wird das Hauptfenster aufgerufen, welches sich auch sofort wieder schließt - Script Ende.
Jemand 'nen Rat?
Mehr Details benötigt?
fG
Matricus