Hallo zusammen
Ich habe vor Kurzem angefangen mit AutoIt zu scripten und bin auf ein Problem gestossen. Da ich eigentlich immer alle Lösungen zu meinen Problemen hier gefunden habe, hatte ich mir gedacht, ich melde mich mal an, da ich keine Antwort auf mein jetztiges Problem gefunden habe.
Obwohl es momentan eher einfach unschön als ein Problem ist, könnte aber einmal eins werden.
Ich rufe in meinem Script eine Funktion, die ein GUI erzeugt, rekursiv auf, was jedoch zu zuvielen Instanzen führen kann. Nun möchte ich wissen ob es eine Möglichkeit gibt, analog zu UNIX mit dem & am Schluss eines Befehles, dass die Funktion nicht abwartet, bis die aufgerufene Funktion beendet ist, sondern weiterläuft.
Hier noch der Auszug aus meinem Code:
Spoiler anzeigen
Func main()
$arSections = IniReadSectionNames($INI) ;Liest alle Sections (Projekte) aus der INI-Datei in ein Array
IF IsArray($arSections) Then ;Falls es Einträge hat, werden diese hiermit in das richtige
$list = "" ; Format für die Liste konvertiert (Item1|Item2|...)
For $i = 1 To $arSections[0]
$list &= "|"
$list &= $arSections[$i]
Next
StringTrimLeft($list,1)
$newproject = $arSections[0]
Else ;Ansonsten wird die Funktion zum erstellen eines Projektes aufgerufen
Dim $arSections[1]
$list = createProject($arSections)
$arSections[0] = $list
EndIF
$mainForm = GUICreate("Projektverwalter", 382, 160, 193, 125) ;Erstellt das Fenster
$mainBearbeiten = GUICtrlCreateButton("Bearbeiten", 184, 24, 75, 25, 0)
$mainCombo1 = GUICtrlCreateList($arSections[0], 24, 24, 145, 100)
GUICtrlSetData($mainCombo1, $list)
$mainStart = GUICtrlCreateButton("Starten", 272, 24, 75, 25, 0)
$mainClose = GUICtrlCreateButton("Beenden", 272, 104, 75, 25, 0)
$mainMenuProject = GUICtrlCreateMenu("&Projekt")
$mainMenuProjectNew = GUICtrlCreateMenuItem("Neues Projekt anlegen", $mainMenuProject)
$mainMenuProjectExit = GUICtrlCreateMenuItem("Beenden", $mainMenuProject)
$mainMenuAbout = GUICtrlCreateMenu("Über")
GUICtrlCreateMenuItem("Dieses Tool", $mainMenuAbout)
GUICtrlCreateMenuItem("Den Entwickler", $mainMenuAbout)
GUICtrlCreateMenuItem("Hilfe", $mainMenuAbout)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1 ;Wartet auf Input=GUIGetMsg
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE ;Schliessen des Fensters per Symbol
Exit
Case $mainClose ;Button Beenden
Exit
Case $mainMenuProjectExit
Exit
Case $mainMenuProjectNew ;Menueintrag Projekt anlegen
GUIDelete($mainForm) ;Fenster wird geschlossen
$list = createProject($arSections)
main() ;????Ruft eine weitere Instanz von sich auf???? ;Startet wieder das Hauptfenster
Case $mainBearbeiten ;Button Bearbeiten speichert den Namen des ausgewählten Projekts,
$project=GuiCtrlRead($mainCombo1) ; schliesst das Fenster und öffnet das Tasks-Fenser
GuiDelete($mainForm)
tasks($project)
Case $mainStart ;Button Starten speichert den Projektnamen, schliesst das Fenster
$project=GuiCtrlRead($mainCombo1) ; und startet das Start-Fenster
GuiDelete($mainForm)
start($project)
EndSwitch
WEnd
EndFunc
Ich verbleibe mit der Hoffnung, dass ich mich verständlich genug ausgedrückt habe und dass es dafür eine Lösung gibt.
fg
che