Auswahlfenster(Programm) soll Ordner nach Dateien durchsuchen und Eingaben in eine ini Datei schreiben, wie??^^

  • Hi,
    brauche eure Hilfe :D
    Vorweg paar Informationen zu meiner Person, habe in meinem Praktikum eine AutoIT - Aufgabe gestellt bekommen, habe mich vorher mit AutoIT noch nicht beschäftigt und bin daher eingelesener Neueinsteiger der etwas rumprobiert hat, aber leichte Startschwierigkeiten hat.

    Nun zur Aufgabe, es gibt dieses Programm:

    [Blockierte Grafik: http://i44.tinypic.com/250ugdc.jpg]


    mit folgendem Codeschnipsel:


    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    fncEndNotOK ()
    ExitLoop
    Case $msg = $Button_1
    GUICtrlSetState ($Button_1, $GUI_DISABLE) ; Button "Installation" wird deaktiviert.
    GUICtrlSetState ($zip, $GUI_DISABLE) ; CheckBox "7 Zip" wird deaktiviert. Und folgende.
    GUICtrlSetState ($adminpack, $GUI_DISABLE)
    GUICtrlSetState ($assetcenter, $GUI_DISABLE)
    GUICtrlSetState ($aventail, $GUI_DISABLE)
    GUICtrlSetState ($citrix, $GUI_DISABLE)
    GUICtrlSetState ($corina, $GUI_DISABLE)
    GUICtrlSetState ($communication, $GUI_DISABLE)
    GUICtrlSetState ($notes, $GUI_DISABLE)
    GUICtrlSetState ($office2007, $GUI_DISABLE)
    GUICtrlSetState ($openssh, $GUI_DISABLE)
    GUICtrlSetState ($putty, $GUI_DISABLE)
    GUICtrlSetState ($remedy, $GUI_DISABLE)
    GUICtrlSetState ($sapgui, $GUI_DISABLE)
    GUICtrlSetState ($snagit, $GUI_DISABLE)
    GUICtrlSetState ($ultraedit, $GUI_DISABLE)
    GUICtrlSetState ($uniphiconnect, $GUI_DISABLE)
    GUICtrlSetState ($vnc, $GUI_DISABLE)
    GUICtrlSetState ($dbnet3, $GUI_DISABLE)

    If FileExists ( $installer) Then
    If GUICtrlRead($zip) = 1 Then
    MsgBox(0,"7 Zip installieren")
    RunWait ($installer & " 3074")
    endIf
    If GUICtrlRead($adminpack) = 1 Then
    MsgBox(0, "Adminpack ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($assetcenter) = 1 Then
    MsgBox(0, "Asset Center ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($aventail) = 1 Then
    MsgBox(0, "Aventail Connect ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($citrix) = 1 Then
    MsgBox(0, , "Citrix Online Plugin ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($corina) = 1 Then
    MsgBox(0, "Corina ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($communication) = 1 Then
    MsgBox(0, "Communication ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($notes) = 1 Then
    MsgBox(0, "Lotus Notes ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($office2007) = 1 Then
    MsgBox(0, "Microsoft Office 2007 ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($openssh) = 1 Then
    MsgBox(0, "OpenSSH ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($Putty) = 1 Then
    MsgBox(0, "Putty ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($Remedy) = 1 Then
    MsgBox(0, "Remedy ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($sapgui) = 1 Then
    MsgBox(0, "SAP Gui installieren")
    RunWait ($installer & " 2438")
    endIf
    If GUICtrlRead($snagit) = 1 Then
    MsgBox(0,, "SnagIt ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($ultraedit) = 1 Then
    MsgBox(0, "Ultra Edit installieren")
    RunWait ($installer & " 2925")
    endIf
    If GUICtrlRead($uniphiconnect) = 1 Then
    MsgBox(0, "Uniphi Connect ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($vnc) = 1 Then
    MsgBox(0, "VNC ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($dbnet3) = 1 Then
    MsgBox(0, "XVT Netlink (dbnet3) ist noch nicht im Warenkorb")
    endIf
    fncEndOK ()
    Else
    fncCatPC ()
    EndIf

    Case $msg = $Button_2
    fncEndNotOK ()
    ExitLoop
    EndSelect
    Wend

    exit


    Aufgabenstellung ist fogende: mit dem Start der Datei soll in %temp% nachgeschaut werden ob es dort eine xxx.ini gibt. Wenn JA dann einlesen und Haken setzen. Wenn nicht dann einfach öffnen und der Benutzer muss mindest. 1 oder Haken setzen. Mit dem drücken auf den Button Installieren sollen die gesetzten Haken in eine Datei (ini) geschrieben werden. Natürlich nur wenn es noch nicht gemacht wurde.

    Bisher weiß ich noch nicht wie ich starten soll, sodass %temp% durchsucht wird.


    Ich hoffe wirklich der ein oder andere kann mit Tipps geben :D
    Dankend im voraus grüßt
    Inselinc.

    Einmal editiert, zuletzt von Inselinc (22. April 2010 um 10:21)

  • %temp% nachgeschaut werden ob es dort eine xxx.ini gibt

    Um das zu prüfen gibts FileExists

    also

    [autoit]


    If FileExists(@TempDir & "\xxx.ini") then
    ;Wenn die Datei Exisiert
    else
    ;Wenn sie es nicht tut
    endif

    [/autoit]

    Wenn JA dann einlesen und Haken setzen.

    Um eine INI einzulesen gibts

    [autoit]


    IniRead

    [/autoit]

    und um einen Haken zu setzen

    [autoit]


    GUICtrlSetState($CtrlID,$GUI_CHECKED)

    [/autoit]
  • ok doch nochmal eine frage, und zwar der File-Exist befehl kann man diesen auch für andere ordner verwenden, also statt temp zb auf der Partition D den Ordner Test?
    Pfad wäre dann D.\Test , ist eine solche suche mit autoit auch möglich?

    Grüße Inselinc.

  • ok danke hatte den Ordnerpfad falsch angegeben "\Ordner\" ^^


    und noch eine letzte frage bevor ich das projekt dank eurer hilfe schließen kann, der Ordner wird jetzt nach ini Dateien durchsucht und wenn ini - Dateien vorhanden sind wird automatisch ein Haken etc gesetzt, also erster teil abgeschlossen. Jetzt gehts noch darum wenn man Installieren drückt sollen für jeden Haken eine Ini datei erstellt werden, wie mach ich das am besten?

    Gruß inselinc

  • ja das war der eigentliche gedanke doch aufgrund meiner unwissenheit habe ich mich für den aufständigeren aber für mich einfacheren weg entschieden und pro haken eine ini überprüft. Daher muss ich jetzt logischerweise pro Haken eine ini Datei erstellen.

  • also ich mache das immer ohne inis, einfach nur dateien, aber wenn du inis nehmen sollst, ok...
    allerdings werde ich dir nicht verraten, wie du es machen sollst, nur so andeutungsweise
    also: in die ini kannst du, wenn haken, ein checked oder true oder irgentwas reinschreiben, wenn nicht, dann schreibst du entweder false (nicht individuell), oder du löschst die zeile bzw die zeile wird nicht ausgefüllt (also gar keine zeile anlegen)
    wenn du es mit der individuelleren variante amchst, solltest du beachten, dass du auch eintragen musst, was letztenendes den haken hat, also z.b.
    true|Adobe
    true|AutoIt
    wie SEuBo schon sagte, benutz wenn schon eine ini, dann wirklich eine ini
    (ini auswerten = IniRead/IniReadSection usw | File auswerten = FileRead/FileReadline(lässt sich am besten in einer fo|next schleife umsetzen!!))
    noch fragen?

  • Poste doch mal deinen aktuellen Code, dann könnte man ja mal eine "lange" und eine "kurze" Version draus machen.

    Überprüfen ob Checkboxen angehackt sind, kannst du mit

    [autoit]

    If GUICtrlRead($checkbox) = 1 Then ;angehakt
    ;oder
    If BitAnd(GUICtrlGetState($checkbox),$GUI_CHECKED) Then ; angehakt

    [/autoit]


    In die Ini schreiben mit

    [autoit]

    IniWrite

    [/autoit]

    PS: Beim Code posten, benutze bitte

    Code
    [spoiler][autoit]hier kommt dein Code.[/autoit][/spoiler]
  • also mein code sieht bisher folgendermaßen aus:

    Spoiler anzeigen
    [autoit]


    If FileExists(@TempDir & "\$zip.ini") then
    GUICtrlSetState($zip,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($zip,$GUI_DISABLE)
    else
    // ;einfach frei gelassen damit man zur späteren auswahlliste gelangt
    endif

    [/autoit]

    Damit wird der Punkt abgehackt und deaktiviert dass man ihn nicht mehr bearbeiten kann. Das zieht sich dann natürlich durch die gesamte Auswahlliste sprich für 7zip, adminpack, asset center etc. bis alle Punkte durch sind. Dann kommt folgender code:

    Spoiler anzeigen
    [autoit]


    If FileExists ( $installer) Then ; Hier wird überprüft ob der Installer vorhanden ist.
    If GUICtrlRead($zip) = 1 Then ; Hier wird die Checkbox abgefragt, ob Haken oder nicht.
    MsgBox(0, "Installationspacket", "7 Zip installieren"); Einfach nur Meldung
    RunWait ($installer & " 3074") ; Hier wird die SW installiert.
    endIf

    [/autoit]

    ebenfalls für alle auswahlpunkte, ist durch meine version zwar aufwendiger ist klar da der code unnötig lang , aber das war für mich erstmal zweitrangig ^^
    zum schuss folgt dann noch der install und abbrech button:


    Spoiler anzeigen
    [autoit]


    Case $msg = $Button_2
    fncEndNotOK ()
    ExitLoop
    EndSelect
    Wend

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

    exit

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

    Func fncCatPC ()
    $var = MsgBox(0, "Installationspacket", "Dies ist kein gültiger Befehlt." & @CRLF & "Installer fehlt. ")
    Select
    Case $var = 1
    fncEndNotOK ()
    EndSelect
    EndFunc

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

    Func fncEndOK ()
    MsgBox(4096, "Installationspacket", "Ende.")
    EndFunc

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

    Func fncEndNotOK ()
    MsgBox(4096, "Installationspacket", " Ende")
    Exit
    EndFunc

    [/autoit]

    Und hier muss ja dann noch ein Befehlabschnitt eingefügt werden, dass beim drücken von Install auch die entsprechenden INI's erstellt werden.


    und @ black_sorbi ok dass mit dem schreiben in eine ini datei hab ich hier im forum gelesen , doch mir stellt sich die frage ob die ini datei selbst von autoit erstellt werden kann oder ob bereits eine ini datei im ordner temp liegen muss, damit autoit mit dem beschreiben anfangen kann.
    generell findet man keine punkte zu dateien erstellen ? also bisher im internet noch nichts dazu gefunden.


    edit : ok habs soweit hinbekommen also *.ini dateien werden erstellt aber wenn ich jetzt das ganze in einer IF - Schleife machen will , sodass zuerst geprüft wird ob ein hacken gesetzt wurde passiert nichts ??... verwende folgende codes:

    Spoiler anzeigen
    [autoit]


    If GUICtrlRead($zip) = 1 ThenFileopen(@DesktopDir & "\$test2.ini", 1)else;Wenn die Datei nicht Exisitert (bisher frei)endif

    [/autoit]

    oder 2te Variante:

    Spoiler anzeigen

    [font=Arial]

    [autoit]


    If GUICtrlSetState($zip,$GUI_CHECKED) ThenFileopen(@DesktopDir & "\$test2.ini", 1)else;Wenn die Datei nicht Exisitert (bisher frei)endif

    [/autoit]

    8 Mal editiert, zuletzt von Inselinc (21. April 2010 um 16:37)

  • da ist aber was schief gelaufen ^^ das müsste in etwa so aussehen:

    [autoit]

    If GUICtrlRead($zip) = 1 Then
    Fileopen(@DesktopDir & "\test2.ini", 1) ; hier müsste das $ weg, wenn es nicht wirklich im dateinamen vorkommt
    else
    ; Wenn else benutzt wird, stehts in dieser form schreiben!!
    EndIf

    [/autoit]

    beim ersten... alles soweit ok (der name kann ja ruhig so heißen)
    beim 2. fehlt wiedermal ein endif (flücktigkeitsfehler oder kopierfehler ^^
    beim dritten fehlt am anfang ein select und wegen der case, die funcs geben ja nichts zurück!! (siehe hilfe: return)

  • ok hab die flüchtigkeitsfehler behoben, funktioniert aber immer noch nicht, die Abfrage der Checkboxen legt sozusagen die gesamte IF - Schleife lahm ... :P

    Hier der gesamte Code:


    [autoit]

    If FileExists(@TempDir & "\$zip.ini") then
    GUICtrlSetState($zip,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($zip,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$adminpack.ini") then
    GUICtrlSetState($adminpack,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($adminpack,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$assetcenter.ini") then
    GUICtrlSetState($assetcenter,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($assetcenter,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$aventail.ini") then
    GUICtrlSetState($aventail,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($aventail,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$citrix.ini") then
    GUICtrlSetState($citrix,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($citrix,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$corina.ini") then
    GUICtrlSetState($corina,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($corina,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$personalcommunication.ini") then
    GUICtrlSetState($personalcommunication,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($personalcommunication,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$notes.ini") then
    GUICtrlSetState($notes,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($notes,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$office2007.ini") then
    GUICtrlSetState($office2007,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($office2007,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$openssh.ini") then
    GUICtrlSetState($openssh,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($openssh,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$putty.ini") then
    GUICtrlSetState($putty,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($putty,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$remedy.ini") then
    GUICtrlSetState($remedy,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($remedy,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$sapgui.ini") then
    GUICtrlSetState($sapgui,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($sapgui,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$snagit.ini") then
    GUICtrlSetState($snagit,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($snagit,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$ultraedit.ini") then
    GUICtrlSetState($ultraedit,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($ultraedit,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$uniphiconnect.ini") then
    GUICtrlSetState($uniphiconnect,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($uniphiconnect,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$vnc.ini") then
    GUICtrlSetState($vnc,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($vnc,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$dbnet3.ini") then
    GUICtrlSetState($dbnet3,$GUI_CHECKED) ;Wenn die Datei Exisiert
    GUICtrlSetState($dbnet3,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif

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

    Fileopen(@DesktopDir & "\$test.ini", 1)

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

    If GUICtrlRead($zip) = 1 Then
    Fileopen(@DesktopDir & "\$zip.ini", 1) ; hier müsste das $ weg, wenn es nicht wirklich im dateinamen vorkommt
    else
    ; Wenn else benutzt wird, stehts in dieser form schreiben!!
    EndIf

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    fncEndNotOK ()
    ExitLoop
    Case $msg = $Button_1
    ;-----------------------------------------------------------------------------------------------------------------------
    ; Hier kann man die Datei/Dateien mit den Werten der Checkbox anlegen. Wenn schon Datei/Dateien vorhanden ist/sind
    ; natürlich nicht mehr anlegen.
    ;***********************************************************************************************************************
    GUICtrlSetState ($Button_1, $GUI_DISABLE) ; Button "Installation" wird deaktiviert.
    GUICtrlSetState ($zip, $GUI_DISABLE) ; CheckBox "7 Zip" wird deaktiviert. Und folgende.
    GUICtrlSetState ($adminpack, $GUI_DISABLE)
    GUICtrlSetState ($assetcenter, $GUI_DISABLE)
    GUICtrlSetState ($aventail, $GUI_DISABLE)
    GUICtrlSetState ($citrix, $GUI_DISABLE)
    GUICtrlSetState ($corina, $GUI_DISABLE)
    GUICtrlSetState ($personalcommunication, $GUI_DISABLE)
    GUICtrlSetState ($notes, $GUI_DISABLE)
    GUICtrlSetState ($office2007, $GUI_DISABLE)
    GUICtrlSetState ($openssh, $GUI_DISABLE)
    GUICtrlSetState ($putty, $GUI_DISABLE)
    GUICtrlSetState ($remedy, $GUI_DISABLE)
    GUICtrlSetState ($sapgui, $GUI_DISABLE)
    GUICtrlSetState ($snagit, $GUI_DISABLE)
    GUICtrlSetState ($ultraedit, $GUI_DISABLE)
    GUICtrlSetState ($uniphiconnect, $GUI_DISABLE)
    GUICtrlSetState ($vnc, $GUI_DISABLE)
    GUICtrlSetState ($dbnet3, $GUI_DISABLE)


    If FileExists ( $installer) Then ; Hier wird überprüft ob der Installer vorhanden ist.
    If GUICtrlRead($zip) = 1 Then ; Hier wird die Checkbox abgefragt, ob Haken oder nicht.
    MsgBox(0, "7 Zip installieren"); Einfach nur Meldung :)
    RunWait ($installer & " 3074") ; Hier wird die SW installiert.
    endIf
    If GUICtrlRead($adminpack) = 1 Then
    MsgBox(0, "Adminpack ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($assetcenter) = 1 Then
    MsgBox(0, "Asset Center ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($aventail) = 1 Then
    MsgBox(0, "Aventail Connect ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($citrix) = 1 Then
    MsgBox(0, "Citrix Online Plugin ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($corina) = 1 Then
    MsgBox(0, "Corina ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($personalcommunication) = 1 Then
    MsgBox(0, "IBM Personal Communication ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($notes) = 1 Then
    MsgBox(0, "Lotus Notes ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($office2007) = 1 Then
    MsgBox(0, "Microsoft Office 2007 ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($openssh) = 1 Then
    MsgBox(0, "OpenSSH ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($Putty) = 1 Then
    MsgBox(0, , "Putty ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($Remedy) = 1 Then
    MsgBox(0, "Remedy ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($sapgui) = 1 Then
    MsgBox(0, "SAP Gui installieren")
    RunWait ($installer & " 2438")
    endIf
    If GUICtrlRead($snagit) = 1 Then
    MsgBox(0, "SnagIt ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($ultraedit) = 1 Then
    MsgBox(0, "Ultra Edit installieren")
    RunWait ($installer & " 2925")
    endIf
    If GUICtrlRead($uniphiconnect) = 1 Then
    MsgBox(0, "Uniphi Connect ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($vnc) = 1 Then
    MsgBox(0, "VNC ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($dbnet3) = 1 Then
    MsgBox(0, "XVT Netlink (dbnet3) ist noch nicht im Warenkorb")
    endIf
    fncEndOK ()
    Else
    fncCatPC ()
    EndIf


    Case $msg = $Button_2
    fncEndNotOK ()
    ExitLoop
    EndSelect
    Wend

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

    exit

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

    Func fncCatPC () $var = MsgBox( "Installer fehlt. ") Select Case $var = 1 fncEndNotOK () EndSelectEndFunc
    Func fncEndOK () MsgBox("Ende.")EndFunc
    Func fncEndNotOK () MsgBox( Ende") ExitEndFunc

    [/autoit]

    Einmal editiert, zuletzt von Inselinc (21. April 2010 um 17:10)

  • ja also ich gehe schon davon aus , dass die Datei $zip heißt ^^ Denn so taucht der name die ganze Zeit auf und so suche ich auch nachher nach den *.ini Dateien, auch alle mit einem $ -vor dem Namen.

  • ok habs , und zwar musste noch eine installer datei auf meinem computer erstellt werden, da dieser im headbereich der datei verlangt wird:


    #include <GUIConstants.au3>
    #include <file.au3>


    $temp = EnvGet ( "Temp" );TempVerzeichnis vom System über EnvGet...
    $installer = "c:\xxxxx21"
    $sysroot = EnvGet ( "SystemRoot" ) & "\system32"

    GUICreate("Test", 400, 570) ; will create a dialog box that when displayed is centered

    Opt("GUICoordMode",2)

    GUICtrlCreateLabel ("Herzlich Willkommen. ", 10, 10,300)


    $zip = GUICtrlCreateCheckbox("7 Zip", -380, 1, 120, 20)
    $adminpack = GUICtrlCreateCheckbox("Adminpack", -120, 1, 120, 20)
    $assetcenter = GUICtrlCreateCheckbox("Asset Center", -120, 1, 120, 20)
    $citrix = GUICtrlCreateCheckbox("Citrix Online Plugin", -120, 1, 120, 20)
    $personalcommunication = GUICtrlCreateCheckbox("IBM Personal Communication", -120, 1, 120, 20)
    $notes = GUICtrlCreateCheckbox("Lotus Notes", -120, 1, 120, 20)
    $office2007 = GUICtrlCreateCheckbox("Microsoft Office 2007", -120, 1, 120, 20)
    $putty = GUICtrlCreateCheckbox("Putty", -120, 1, 120, 20)
    $remedy = GUICtrlCreateCheckbox("Remedy", -120, 1, 120, 20)
    $sapgui = GUICtrlCreateCheckbox("SAP Gui", -120, 1, 120, 20)
    $snagit = GUICtrlCreateCheckbox("SnagIt", -120, 1, 120, 20)
    $ultraedit = GUICtrlCreateCheckbox("Ultra Edit", -120, 1, 120, 20)
    $uniphiconnect = GUICtrlCreateCheckbox("Uniphi Connect", -120, 1, 120, 20)
    $vnc = GUICtrlCreateCheckbox("VNC", -120, 1, 120, 20)
    $dbnet3 = GUICtrlCreateCheckbox("XVT Netlink (dbnet3)", -120, 1, 120, 20)

    $aventail = GUICtrlCreateCheckbox("Aventail Connect", -120, 20, 120, 20)
    $openssh = GUICtrlCreateCheckbox("OpenSSH", -120, 1, 120, 20)
    $corina = GUICtrlCreateCheckbox("Corina", -120, 1, 120, 20)

    GUICtrlSetState ( $aventail, $GUI_CHECKED ) ; vorbelegen
    GUICtrlSetState ( $openssh, $GUI_CHECKED ) ; vorbelegen
    GUICtrlSetState ( $corina, $GUI_CHECKED ) ; vorbelegen

    GUICtrlSetState ($aventail, $GUI_DISABLE) ; Checkbox deaktiviert
    GUICtrlSetState ($openssh, $GUI_DISABLE) ; Checkbox deaktiviert
    GUICtrlSetState ($corina, $GUI_DISABLE) ; Checkbox deaktiviert

    $Button_1 = GUICtrlCreateButton ("Installation", 70, 20, 75, 40)
    $Button_2 = GUICtrlCreateButton ("Beenden", 13, -1)

    GUISetState () ; will display an dialog box

    ; -----------------------------------------------------------------------------------------------------------------------------
    ; Ich denke an dieser Stelle kann man überprüfen ob es schon eine/viele Dateien gibt. Wenn vorhanden
    ; dann auslesen und Haken setzen oder auch nicht. UNd dann antürlich die Checkboxen desktivieren, dass
    ; keine Änderungen gemacht werden können.
    ;******************************************************************************************************************************


    If FileExists(@TempDir & "\$zip.ini") then
    GUICtrlSetState($zip,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($zip,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$adminpack.ini") then
    GUICtrlSetState($adminpack,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($adminpack,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$assetcenter.ini") then
    GUICtrlSetState($assetcenter,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($assetcenter,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$aventail.ini") then
    GUICtrlSetState($aventail,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($aventail,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$citrix.ini") then
    GUICtrlSetState($citrix,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($citrix,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$corina.ini") then
    GUICtrlSetState($corina,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($corina,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$personalcommunication.ini") then
    GUICtrlSetState($personalcommunication,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($personalcommunication,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$notes.ini") then
    GUICtrlSetState($notes,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($notes,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$office2007.ini") then
    GUICtrlSetState($office2007,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($office2007,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$openssh.ini") then
    GUICtrlSetState($openssh,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($openssh,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$putty.ini") then
    GUICtrlSetState($putty,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($putty,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$remedy.ini") then
    GUICtrlSetState($remedy,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($remedy,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$sapgui.ini") then
    GUICtrlSetState($sapgui,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($sapgui,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$snagit.ini") then
    GUICtrlSetState($snagit,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($snagit,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$ultraedit.ini") then
    GUICtrlSetState($ultraedit,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($ultraedit,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$uniphiconnect.ini") then
    GUICtrlSetState($uniphiconnect,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($uniphiconnect,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$vnc.ini") then
    GUICtrlSetState($vnc,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($vnc,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif
    If FileExists(@TempDir & "\$dbnet3.ini") then
    GUICtrlSetState($dbnet3,$GUI_CHECKED);Wenn die Datei Exisiert
    GUICtrlSetState($dbnet3,$GUI_DISABLE)
    else
    ;Wenn die Datei nicht Exisitert (bisher frei)
    endif


    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    fncEndNotOK ()
    ExitLoop
    Case $msg = $Button_1
    ;-----------------------------------------------------------------------------------------------------------------------
    ; Hier kann man die Datei/Dateien mit den Werten der Checkbox anlegen. Wenn schon Datei/Dateien vorhanden ist/sind
    ; natürlich nicht mehr anlegen.
    ;***********************************************************************************************************************


    GUICtrlSetState ($Button_1, $GUI_DISABLE) ; Button "Installation" wird deaktiviert.
    GUICtrlSetState ($zip, $GUI_DISABLE) ; CheckBox "7 Zip" wird deaktiviert. Und folgende.
    GUICtrlSetState ($adminpack, $GUI_DISABLE)
    GUICtrlSetState ($assetcenter, $GUI_DISABLE)
    GUICtrlSetState ($aventail, $GUI_DISABLE)
    GUICtrlSetState ($citrix, $GUI_DISABLE)
    GUICtrlSetState ($corina, $GUI_DISABLE)
    GUICtrlSetState ($personalcommunication, $GUI_DISABLE)
    GUICtrlSetState ($notes, $GUI_DISABLE)
    GUICtrlSetState ($office2007, $GUI_DISABLE)
    GUICtrlSetState ($openssh, $GUI_DISABLE)
    GUICtrlSetState ($putty, $GUI_DISABLE)
    GUICtrlSetState ($remedy, $GUI_DISABLE)
    GUICtrlSetState ($sapgui, $GUI_DISABLE)
    GUICtrlSetState ($snagit, $GUI_DISABLE)
    GUICtrlSetState ($ultraedit, $GUI_DISABLE)
    GUICtrlSetState ($uniphiconnect, $GUI_DISABLE)
    GUICtrlSetState ($vnc, $GUI_DISABLE)
    GUICtrlSetState ($dbnet3, $GUI_DISABLE)


    If FileExists ( $installer) Then ; Hier wird überprüft ob der Installer vorhanden ist.
    If GUICtrlRead($zip) = 1 Then ; Hier wird die Checkbox abgefragt, ob Haken oder nicht.
    MsgBox(0, "Test", "7 Zip installieren"); Einfach nur Meldung :)
    Fileopen(@DesktopDir & "\$zip.ini", 1)
    RunWait ($installer & " 3074") ; Hier wird die SW installiert.
    endIf
    If GUICtrlRead($adminpack) = 1 Then
    MsgBox(0, "Test", "Adminpack ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($assetcenter) = 1 Then
    MsgBox(0, "Test", "Asset Center ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($aventail) = 1 Then
    MsgBox(0, "Test", "Aventail Connect ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($citrix) = 1 Then
    MsgBox(0, "Test", "Citrix Online Plugin ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($corina) = 1 Then
    MsgBox(0, "Test", "Corina ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($personalcommunication) = 1 Then
    MsgBox(0, "Test", "IBM Personal Communication ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($notes) = 1 Then
    MsgBox(0, "Test", "Lotus Notes ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($office2007) = 1 Then
    MsgBox(0, "Test". "Microsoft Office 2007 ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($openssh) = 1 Then
    MsgBox(0, "Test", "OpenSSH ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($Putty) = 1 Then
    MsgBox(0, "Test", "Putty ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($Remedy) = 1 Then
    MsgBox(0, "Test", "Remedy ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($sapgui) = 1 Then
    MsgBox(0, "Test", "SAP Gui installieren")
    RunWait ($installer & " 2438")
    endIf
    If GUICtrlRead($snagit) = 1 Then
    MsgBox(0, "Test", "SnagIt ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($ultraedit) = 1 Then
    MsgBox(0, "Test", "Ultra Edit installieren")
    RunWait ($installer & " 2925")
    endIf
    If GUICtrlRead($uniphiconnect) = 1 Then
    MsgBox(0, "Test", "Uniphi Connect ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($vnc) = 1 Then
    MsgBox(0, "Test", "VNC ist noch nicht im Warenkorb")
    endIf
    If GUICtrlRead($dbnet3) = 1 Then
    MsgBox(0, "Test", "XVT Netlink (dbnet3) ist noch nicht im Warenkorb")
    endIf
    fncEndOK ()
    Else
    fncCatPC ()
    EndIf


    Case $msg = $Button_2
    fncEndNotOK ()
    ExitLoop
    EndSelect
    Wend

    exit


    Func fncCatPC ()
    $var = MsgBox(0, "Test", "Dies ist kein gültiger Befehl." & @CRLF & "Installer fehlt. ")
    Select
    Case $var = 1
    fncEndNotOK ()
    EndSelect
    EndFunc

    Func fncEndOK ()
    MsgBox(4096, "Test", "Ende.")
    EndFunc

    Func fncEndNotOK ()
    MsgBox(4096, "Test", " Ende")
    Exit
    EndFunc


    Da mir der geforderte Installer fehlte , konnte die Installation natürlich nicht komplett ausführen, deswegen keine INI Datei^^ Jetzt funktioniert die Installation und die INI Datei wird erstellt.

    Danke für eure Hilfe ^^ So konnte ich diese anfänglich nicht-lösbare Aufgabe erledigen. Zwar nicht der eleganteste Weg aber es funktioniert ;)

    Grüße Inselinc.

    Einmal editiert, zuletzt von Inselinc (21. April 2010 um 17:55)

  • Beim nächsten Thread bitte den Spoiler benutzen und den AutoIt-Button, wenn du dein Script postest. Dann kannste den Thread auf Gelöst setzen, ersten Post editieren und dann anstatt offen auf gelöst und speichern.