Schritte mit Hilfe von INI Datei installieren / abarbeiten

  • Hallo @ all,

    ich hab mal wieder ein Problem. Ich habe eine GUI mit deren Hilfe ich bestimmte Programme konfigurieren lassen möchte. Die GUI dient nur zur Eingabe der Werte die benötigt werden, wie Proxy, Passwörter, UNC-Pfade usw...Die INI Datei enthält für jeden Schritt einen Eintrag:

    Spoiler anzeigen


    [SETUP]
    TWEAKS=0
    NAI=0
    IE=0
    DRIVE=0
    APSW=0
    LUNA=0
    SYSOPT=0
    ITWEU=0
    MP10=0
    PK2000=0
    IRFAN=0
    DKSACP=0
    IETEMP=0


    Ist ein Schritt abgeschlossen wird der Wert auf "1" gesetzt und der nächste Schritt soll erfolgen. Bisher habe ich das so gemacht, allerdings geht das nicht wirklich :)

    Spoiler anzeigen
    [autoit]


    ;=====Auslesen des INI Status====
    $var = IniReadSection("C:\apps\firstrun\setup.ini", "SETUP")
    For $i = 1 To $var[0][0]

    ;====Ausführen der Anwendungen====
    if $var["TWEAKS"][0] Then
    #include <tweaks.au3>

    elseif $var["TWEAKS"][1] Then
    #include <nai.au3>

    elseif $var["NAI"][1] Then
    #include <ie.au3>


    elseif $var["IE"][1] Then
    #include <drive.au3>


    elseif $var["DRIVE"][1] Then
    #include <apsw.au3>


    elseif $var["APSW"][1] Then
    #include <luna.au3>


    elseif $var["LUNA"][1] Then
    #include <sysopt.au3>


    elseif $var["SYSOPT"][1] Then
    #include <itweu.au3>


    elseif $var["ITWEU"][1] Then
    #include <mp10.au3>


    elseif $var["MP10"][1] Then
    #include <irfan.au3>


    elseif $var["IRFAN"][1] Then
    #include <dksacp.au3>


    elseif $var["DKSACP"][1] Then
    #include <ie_temp.au3>
    EndIf
    Next

    [/autoit]

    Joar, nun meine Frage...wie bekomme ich das so hin, das er immer wartet und dann erst weiter macht, wenn der Wert auf "1" ist?

    Einmal editiert, zuletzt von hessebou (25. Januar 2007 um 10:39)

  • Hi,

    $var[hier steht der Schritt][hier der Wert]
    das geht ja soweit auch, nur das Problem ist, das er immer warten soll mit dem weiter machen bis der Wert auf "1" ist

    Gibt es nicht eine Möglichkeit, welche die INI laufend abfragt und immer schaut wo der nächste (in meinem Fall) 0 Wert ist (Schritt noch nicht ausgeführt) und diesen Ababreitet und dann mit dem nächsten 0 Wert weiter macht?

    Einmal editiert, zuletzt von hessebou (25. Januar 2007 um 11:41)

  • Hi,

    also ich weiß ist etwas durcheinander...:) ich hänge da schon ewig...Mit den Statufeldern ist etwas doof, da der Rechner bei manchen Aktionen neugestartet werden muss. Durch die INI Variante wird ja gekennzeichnet was schon erledgit wurde.
    Ich habe eine GUI gebastelt, welche nach der Unatteded Installation erscheint. Mit Hilfe dieser GUI lasse ich Programme usw. einstellen. Ich habe eine INI-Datei mit den einzelnen Schritten, Standardwert ist 0 (noch nicht bearbeitet). Nun soll zu beginn die INI-eigelesen werden und der erste Schritt wo der Wert 0 ist abgearbeitet werden...es wird dann ein AutoIT Script aufgerufen. Wurde der Schritt bearbeitet wird der Wert auf 1 gesetzt (erledigt) und es soll nun wieder geprüft werden welcher Schritt noch auf 0 steht.

    Danke schon mal vorab...

    Gruß

    • Offizieller Beitrag

    HI,


    ahhhhh ich glaube jetzt habe ich verstanden.

    Du hast ein Skript in das immer wieder neu gestartet wird und das Skript soll selbst erkennen, was es schon getan hat und was nicht, richtig?

    Dann würde ich Methoden machen für die einzelnen ToDos und dann am Anfang eine Switch-Abfrage auf den Status.

    Diesen Status kannst du natürlich auch aus einer Ini holen.

    Status hier z.B. 1,2,4,8,16,32, 64 usw.

    So long,

    Mega

  • :)...so in dem Dreh genau...du hast eine GUI und gibst da verschieden Sachen ein...Proxy usw....diese Eingaben werden auch in die INI geschrieben, damit die nicht noch mal Eingeben werden müssen. Danach soll er die Schritte abarbeiten und zwar nacheinander...hatte es mal geschafft, aber es wurde alles gleichzeitig aufgerufen :rofl:...naja hat nicht geklappt...und jetzt wollte ich durch den Status in der INI versuchen, dies zu verhindern und wegen der Neustartgeschichte...ich habe überlegt einen weiteren Wert zu benutzen "2" z.B. der soll sagen, aktuell in Bearbeitung. Am Anfang kommt eine Abfrage, ob irgend ein Wert 2 hat, wenn ja warte bis der weg ist und mache mit dem nächsten 0 (nicht bearbeitet) weiter...lol...oh man jetzt merke ich gerade was ich vor habe...
    Kannst du evtl. bissel Code posten...sooo gut bin ich noch nicht in AutoIT

    Hier mal die GUI:

    Spoiler anzeigen
    [autoit]


    ; GUI zum einrichten des PCs nach der Standardinstallation

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

    $version = "1.0"

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

    ;Einbinden der Dateien
    #include <GUIConstants.au3>
    #include <file.au3>

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

    ;GUI Status auslesen
    $guis = IniRead ("C:\apps\firstrun\setup.ini", "VARIABLEN", "GUI", "0")

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

    if $guis == 0 Then

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

    ;Konfig GUI
    GUICreate("Konfigurationsmenü",490,600)
    GUICtrlCreateGroup("McAfee Konfiguration", 10, 30, 260, 325)
    GUICtrlCreateLabel("Taskname für AutoUpdate",20,55)
    $nai_tn = GUICtrlCreateInput ("",20,70,100,20)
    GUICtrlCreateLabel("UNC-Updatepfad (\\SERVERNAME\FREIGABE\)",20,105)
    $nai_unc = GUICtrlCreateInput ("",20,120,200,20)
    GUICtrlCreateLabel("Anmeldedomäne oder Arbeitsgruppe",20,155)
    $nai_dom = GUICtrlCreateInput ("",20,170,150,20)
    GUICtrlCreateLabel("Benutzer",20,205)
    $nai_usr = GUICtrlCreateInput ("",20,220,150,20)
    GUICtrlCreateLabel("Passwort",20,255)
    $nai_psw = GUICtrlCreateInput ("",20,270,150,20)
    GUICtrlCreateLabel("Passwort für Oberfläche",20,305)
    $nai_opsw = GUICtrlCreateInput ("",20,320,150,20)

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

    GUICtrlCreateGroup("Globale Angaben", 300, 30, 180, 130)
    GUICtrlCreateLabel("Lokales Admin-Passwort",310,55)
    $glb_apsw = GUICtrlCreateInput ("",310,70,120,20)
    GUICtrlCreateLabel("Schulproxy (10.141.XXX.254)",310,105)
    $glb_pxy = GUICtrlCreateInput ("",310,120,120,20)

    GUICtrlCreateGroup("DKS Angaben", 300, 170, 180, 80)
    GUICtrlCreateLabel("DKS Passwort",310,195)
    $dks_psw = GUICtrlCreateInput ("",310,210,120,20)

    ;Explorermenu
    $filemenu = GUICtrlCreateMenu ("Datei")
    $infomenu = GUICtrlCreateMenu ("?")
    $infoitem = GUICtrlCreateMenuitem ("Info",$infomenu)
    $exititem = GUICtrlCreateMenuitem ("Exit",$filemenu)

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

    GUICtrlSetState(-1,$GUI_CHECKED)
    $okbutton = GUICtrlCreateButton ("Einrichten",300,450,70,20)
    GUICtrlSetState(-1,$GUI_FOCUS)
    $cancelbutton = GUICtrlCreateButton ("Abbrechen",390,450,70,20)


    GUISetState ()
    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $exititem Then ExitLoop
    If $msg = $infoitem Then Msgbox(0,"Info","Version: " & $version & @CRLF & "(C) Copyright by Stadtschulamt" & @CRLF & "40.43.3 Ma")
    If $msg = $okbutton Then


    ;==================Auslesen der Variablen=====
    $nai_tnr = GUICtrlRead($nai_tn)
    $nai_uncr = GUICtrlRead($nai_unc)
    $nai_domr = GUICtrlRead($nai_dom)
    $nai_usrr = GUICtrlRead($nai_usr)
    $nai_pswr = GUICtrlRead($nai_psw)
    $nai_opswr = GUICtrlRead($nai_opsw)
    $glb_apswr = GUICtrlRead($glb_apsw)
    $glb_pxyr = GUICtrlRead($glb_pxy)
    $dks_pswr = GUICtrlRead($dks_psw)


    ;==================Variablen in INI speichern==
    ;IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "GUI", "1")
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "TN", $nai_tnr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "UNC", $nai_uncr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "DOM", $nai_domr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "USR", $nai_usrr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "PSW", $nai_pswr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "OPSW", $nai_opswr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "APSW", $glb_apswr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "PXY", $glb_pxyr)
    IniWrite("C:\apps\firstrun\setup.ini", "VARIABLEN", "DPSW", $dks_pswr)

    ;=====Auslesen des INI Status====
    $var = IniReadSection("C:\apps\firstrun\setup.ini", "SETUP")
    For $i = 1 To $var[0][0]

    ;====Ausführen der Anwendungen====
    if $var["TWEAKS"][0] Then
    #include <tweaks.au3>

    elseif $var["TWEAKS"][1] Then
    #include <nai.au3>

    elseif $var["NAI"][1] Then
    #include <ie.au3>


    elseif $var["IE"][1] Then
    #include <drive.au3>


    elseif $var["DRIVE"][1] Then
    #include <apsw.au3>


    elseif $var["APSW"][1] Then
    #include <luna.au3>


    elseif $var["LUNA"][1] Then
    #include <sysopt.au3>


    elseif $var["SYSOPT"][1] Then
    #include <itweu.au3>


    elseif $var["ITWEU"][1] Then
    #include <mp10.au3>


    elseif $var["MP10"][1] Then
    #include <irfan.au3>


    elseif $var["IRFAN"][1] Then
    #include <dksacp.au3>


    elseif $var["DKSACP"][1] Then
    #include <ie_temp.au3>
    EndIf
    Next
    EndIf

    WEnd


    EndIf
    GUIDelete()
    Exit

    [/autoit]
  • Hi,

    Danke schon mal...
    Ich muss mir dann eine andere Beschäftigung suchen :schild4:...keine Nerven mehr dafür