Speichern von eingaben in GUI ?

  • angelent an diesen Thread:

    https://autoit.de/index.php?page=Thread&threadID=12731

    und diesem Sctipt:

    Spoiler anzeigen
    [autoit]

    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Global $ok, $1, $2, $3, $4, $5
    Global $Title = "Test"
    Global $hGui, $exit, $ok

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

    _abfragebox ("Programme")

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

    Func _abfragebox($sTitle)
    ;diese abfragebox macht soweit das sie RAR namen kopiert & Samples können geläscht werden
    $hGui = GUICreate($sTitle, 500, 500)
    ;BUTTONS
    GUICtrlCreateLabel("Hier die gewünschten Programme auswählen und dann FERTIG drücken", 10, 10)
    GUICtrlCreateGroup ("Internet",5,30,120,120)
    $1 = GUICtrlCreateCheckbox("ICQ 6.5", 20, 50)
    $2 = GUICtrlCreateCheckbox("Firefox", 20, 75)
    GUICtrlCreateGroup ("System",150,30,120,120)
    $3 = GUICtrlCreateCheckbox("Divx", 165,50)
    $4 = GUICtrlCreateCheckbox("Java", 165,75)
    GUICtrlCreateGroup ("Other",300,30,120,120)
    $5 = GUICtrlCreateCheckbox("Deamon Tools", 315,50)
    GUICtrlCreateLabel ("Installationsstatus:",20,400)
    $1Stat = GUICtrlCreateLabel("",110,400,350,20)
    ;$2Stat = GUICtrlCreateLabel("",100,400)
    ;$3Stat = GUICtrlCreateLabel("",100,400)
    ;$4Stat = GUICtrlCreateLabel("",100,400)

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

    $ok = GUICtrlCreateButton("FERTIG", 150, 460, 60, 30)
    $exit = GUICtrlCreateButton("Exit", 250, 460, 60, 30)
    GUISetState() ; GERBAUCHT damit GUI angezeigt wird

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $exit
    Exit
    Case $ok
    ConsoleWrite("Alles OK" & @CRLF)
    ConsoleWrite(GUICtrlRead($1) & " " & $GUI_CHECKED & @CRLF)
    If GUICtrlRead($1) = $GUI_CHECKED Then
    GUICtrlSetData($1Stat,"Wird installiert ICQ 6.5")
    ;hier Insatllationsroutine aufrufen runwait
    sleep (3000)
    GUICtrlSetData($1Stat,"Wurde installiert ICQ 6.5")
    EndIf
    If GUICtrlRead($2) = $GUI_CHECKED Then
    GUICtrlSetData($1Stat,"Wird installiert FireFox")
    ;hier Insatllationsroutine aufrufen
    sleep (3000)
    GUICtrlSetData($1Stat,"wurde installier FireFox")
    EndIf
    If GUICtrlRead($3) = $GUI_CHECKED Then
    GUICtrlSetData($1Stat,"Wird installiert DivX")
    ;hier Insatllationsroutine aufrufen
    sleep (3000)
    GUICtrlSetData($1Stat,"wurde installiert DivX")
    EndIf
    If GUICtrlRead($4) = $GUI_CHECKED Then
    GUICtrlSetData($1Stat,"Wird installiert JAVA")
    ;hier Insatllationsroutine aufrufen
    sleep (3000)
    GUICtrlSetData($1Stat,"wurde installiert JAVA")
    EndIf
    If GUICtrlRead($5) = $GUI_CHECKED Then
    GUICtrlSetData($1Stat,"Wird installiert Deamon Tools")
    ;hier Insatllationsroutine aufrufen
    sleep (3000)
    GUICtrlSetData($1Stat,"wurde installiert Deamon Tools")
    EndIf

    GUIDelete($hGui)
    EXitLoop
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    kommt folgendes Problem auf:

    Ich möchte da noch ein Paar mehr Programme hinzufügen und 2-3 Brauchen auch einen neustart... wie mache ich das jetzt am elegantesten, dass sich nicht alle eingaben löschen?
    denn wenn Deamon tools jetzt z.B. einfach neustartet... dann geht die auswahl + die Programme die er danach noch installieren sollte einfach verloren... oder muss sie nochmal auswählen was ich aber nicht möchte...

    was kann ich tun?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Speicher deine Eingaben in einer Ini-Datei und schreib dein Programm in den AutoStart (->besser in RunOnce)

    Dafür wirstu: Ini- bzw. Reg- Read/Write brauchen!

    Oder noch einfacher:
    In der Regel ist es nicht zwingend erforderlich sofort neuzustarten-> Installier deine Programme und starte dann neu..

  • Also für Deamon Tools ist es zwingend neuzustarten...

    und wenn dann noch programme wie Alcohol 120 % kommen, dann brauch er da auch einen neustart...

    somit wäre dann die liste wirklich weg...

    wenn ich write to ini mache, dann kann ich damit ja auch eine neue GUI basteln nach einem Neustart oder?
    sozusagen, dass der FERTIG button zu einem "NEUSTARTEN/INSTALLIEREN" button wird... dürfte doch irgendwie gehen oder?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Kla geht das.. obwohl es keinen Sinn machen würde nach dem Restart den Fertig Button zu verändern 8|
    Muss noch irgendwas nach dem Restart für Deamon-Tools gemacht werden?

    Wenn nicht dann machst du das so:
    1. Dein Script ausführen
    2. Ini-Datei mit deinen restlichen Programmen+Pfaden erstellen
    3. Dein Script in den Run-Once-Start tun
    4. Beim erneutem Starten, abfragen ob die Ini-Datei existiert, wenn ja:
    In einer For-Schleife die restlichen Programme installieren

  • Nein ich hatte mir das so vorgestellt... wenns geht ich hab bis jetzt 0 plan davon...


    Also die auswahl wird getroffen wie im meinem beispielscript...

    wenn mann dann mit dem auswählen fertig ist klickt man auf den FERTIG button da
    und der PC startet neu (dabei schreiben sich die ausgewählten programme in eine INI datei)
    beim starten öffnet sich ein Script was diese INI datei ausliest und abarbeitet...

    wen jetzt z.B. Deamon Tools drankommt (und ja es muss nach dem neustart noch etwas machen) dann installiert es den komplett und
    löscht nach jedem fertig installiertem Programm den eintrag aus der INI... sodass nach jedem gezwungenem neustart die
    INI auf dem "neuestem" stand ist und nurnoch die noch zu "abarbeitenden" programme macht....

    würde soetwas funktionieren?
    würde mich freuen wenn ja :)

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)