Kleines Installationsprogramm...n paar Fragen

  • Hallo zusammen
    Hab folgendes kleines Program, bei dem ich auswählen möchte, welche Programme ich installieren will (ist noch in der Testphase)

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    GUICreate("Hello World", 200, 300)
    GUICtrlCreateLabel("Test", 30, 10)
    $okbutton = GUICtrlCreateButton("OK", 70, 250, 60)
    $checkbox1 = GUICtrlCreateCheckbox("7-Zip",30,30)
    $checkbox2 = GUICtrlCreateCheckbox("Gimp",30,50)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    DirCreate("C:\Temp")
    Select
    Case $msg = $okbutton
    If ControlCommand("Hello World","",5,"IsChecked", "") Then
    DirCreate("C:\Temp\Zip_Test")
    EndIf
    If ControlCommand("Hello World","",6,"IsChecked","") Then
    DirCreate("C:\Temp\Gimp2_Test")
    EndIf

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

    Case $msg = $GUI_EVENT_CLOSE
    DirRemove("C:\Temp",1)
    ExitLoop
    EndSelect
    WEnd

    [/autoit]


    So wie es jetzt steht klappt auch alles, was ich aber nicht hinbekomme sind folgende Sachen:
    a) das Programm soll "mäckern" wenn nichts ausgewählt ist
    b) es sollen nur die ausgewählten Programme von einem zentralen Punkt runtergeladen werden, also soll dem Downloader (der an sich funktioniert),
    nur dann die benötigten Parameter übermittelt werden. Hab es mal mit dem Befehl Func versucht, aber da wurde bei mir der Befehl immer übermittelt.

    Spoiler anzeigen
    [autoit]

    Opt("SendKeyDelay",10)
    DirCreate("C:\Temp")
    ShellExecute("C:\Program Files (x86)\WinSCP\WinSCP.com")
    Sleep(100)
    Send("open ftp://*******")
    Sleep(300)
    Send("{Enter}")
    Sleep("500")
    Send("cd Programs")
    Sleep(200)
    Send("{Enter}")
    Sleep(200)
    Send ("get 7_ZIP C:\Temp")
    Sleep(200)
    Send("{Enter}")
    Sleep(5000)

    [/autoit]


    (Skript"massaker" des Downloaders)
    --> zu b) also zum klarer machen, erst wenn ich im ersten Skript z.B. 7Zip ausgewählt haben, soll der ganze soll der ganze Code der das "get 7_ZIP"
    regelt übermittelt werden
    Hoffe mir kann einer Helfen^^
    Grüßle
    Nachtvogel

    Einmal editiert, zuletzt von nachtvogel85 (5. August 2009 um 08:58)

  • die checkboxen würde ich als array deklarieren

    Spoiler anzeigen
    [autoit]

    Dim $chk[3]
    $chk[0] = GUICtrlCreateCheckbox
    $chk[1] = GUICtrlCreateCheckbox
    $chk[2] = GUICtrlCreateCheckbox

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

    ;Und dann kannst du abfragen:

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

    $chk_active = false
    For $i =0 To Ubound($chk) -1
    if GUICtrlRead($chk[$i]) = $GUI_CHECKED Then $chk_active = true
    Next
    If $chk_active = false Then MsgBox(0, "test", "es wurde keine checkbox aktiviert")

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Danke....das klappt wirklich super.
    Hat wer ne rettende Idee zu meiner Frage b)??

  • naja im prinzip genauso
    angenommen $chk[0] ist 7zip
    dann machst du das bei der abfrage einfach so:

    Spoiler anzeigen
    [autoit]

    If GUICtrlRead($chk[0]) = $GUI_CHECKED Then get_7zip()

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

    Func get_7zip()
    DirCreate("C:\Temp")
    ShellExecute("C:\Program Files (x86)\WinSCP\WinSCP.com")
    Sleep(100)
    Send("open ftp://*******")
    Sleep(300)
    Send("{Enter}")
    Sleep("500")
    Send("cd Programs")
    Sleep(200)
    Send("{Enter}")
    Sleep(200)
    Send ("get 7_ZIP C:\Temp")
    Sleep(200)
    Send("{Enter}")
    Sleep(5000)
    EndFunc

    [/autoit]

    Desweiteren würde ich dir nicht empfehlen einen Temp Ordner zu erstellen benutze lieber @TempDir

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Vielen Dank.....ich hasse es Anfänger zu sein :D
    Werd es gleich morgen so austesten
    Klappt nun alles wunderbar.....vielen Dank für die zügige Hilfe

    Einmal editiert, zuletzt von nachtvogel85 (5. August 2009 um 08:57)