Problem mit Installer

  • Hi, hab ein kleines Problem mit nem Prog, das etwas Installieren soll.
    Ich will eine "Durschsuchen" Funktion einbauen.
    Also das sich eine Box öffnen, wo man den ordner auswählen kann, wo etwas installiert werden soll.

    Ich weis, dass das mit "FileSelectFolder" geht, aber...
    Ich will, das der pfad, den man in diesem fenster dann auswählt,
    in dem "GUICtrlCreateInput" steht.

    Hier mal das script, vllt hilft das weiter...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Local $INSTALL, $CH1, $CH2, $EXIT, $MSG

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

    GUICreate("Install", 350, 310)
    Opt("GUICoordMode", 1)
    $DIR = @ScriptDir
    GUISetBkColor(16777215)
    GUISetFont(9)

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

    $PFAD = GUICtrlCreateInput("", 10, 130, 330)
    $INSTALL = GUICtrlCreateButton("Installieren", 10, 160, 100)
    $CH1 = GUICtrlCreateCheckbox("Verknüpfung auf Desktop erstellen.", 10, 200, 340)
    $CH2 = GUICtrlCreateCheckbox("Programm starten nach Fertigstellung.", 10, 230, 340)
    GUICtrlCreateLabel("Bitte Installationspfad eingeben.", 10, 108, 300, 15)
    $EXIT = GUICtrlCreateButton("Exit", 10, 270, 50)
    GUICtrlCreatePic($DIR & "\install\AutoIT.bmp", 10, 10, 330, 90)

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

    GUISetState()

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

    While 1
    $MSG = GUIGetMsg()
    Select
    Case $MSG = $INSTALL
    $PH = GUICtrlRead($PFAD, 1)
    If $PH < " " Then
    MsgBox(16, "Error", "Bitte Pfad eingeben!")
    Else
    GUICtrlSetState($INSTALL, $GUI_DISABLE)
    GUICtrlSetState($CH1, $GUI_DISABLE)
    GUICtrlSetState($CH2, $GUI_DISABLE)
    DirCreate($PH)
    FileCopy($DIR & "\Install\Palette.ott", $PH & "\", 1)
    FileCopy($DIR & "\Install\NewStart.exe", $PH & "\", 1)
    FileCopy($DIR & "\Install\To-Do Checkbox.exe", $PH & "\", 1)
    If GUICtrlRead($CH1) = $GUI_CHECKED Then
    FileCreateShortcut($PH & "\To-Do Checkbox.exe", @DesktopDir & "\To-Do Checkbox.lnk")
    EndIf
    If GUICtrlRead($CH2) = $GUI_CHECKED Then
    Run($PH & "\To-Do Checkbox.exe")
    EndIf
    EndIf
    Case $MSG = $EXIT
    Exit
    EndSelect
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von Commander21 (15. Februar 2009 um 19:12)

  • Du kannst es mit FileSelectFolder machen halt mit:

    [autoit]

    $1=FileSelectFolder(Halt die parameter)
    Guictrlsetdata($Pfad,$1)

    [/autoit]

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • so...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Local $INSTALL, $CH1, $CH2, $EXIT, $MSG

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

    GUICreate("Install", 350, 310)
    Opt("GUICoordMode", 1)
    $DIR = @ScriptDir
    GUISetBkColor(16777215)
    GUISetFont(9)

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

    $PFAD = GUICtrlCreateInput("", 10, 130, 300)
    ; neuer Button für den Dialog
    $SelectPfad = GUICtrlCreateButton("...",315,130,20,20)
    $INSTALL = GUICtrlCreateButton("Installieren", 10, 160, 100)
    $CH1 = GUICtrlCreateCheckbox("Verknüpfung auf Desktop erstellen.", 10, 200, 340)
    $CH2 = GUICtrlCreateCheckbox("Programm starten nach Fertigstellung.", 10, 230, 340)
    GUICtrlCreateLabel("Bitte Installationspfad eingeben.", 10, 108, 300, 15)
    $EXIT = GUICtrlCreateButton("Exit", 10, 270, 50)
    GUICtrlCreatePic($DIR & "\install\AutoIT.bmp", 10, 10, 330, 90)

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

    GUISetState()

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

    While 1
    $MSG = GUIGetMsg()
    Select
    Case $MSG = $INSTALL
    $PH = GUICtrlRead($PFAD, 1)
    If $PH < " " Then
    MsgBox(16, "Error", "Bitte Pfad eingeben!")
    Else
    GUICtrlSetState($INSTALL, $GUI_DISABLE)
    GUICtrlSetState($CH1, $GUI_DISABLE)
    GUICtrlSetState($CH2, $GUI_DISABLE)
    DirCreate($PH)
    FileCopy($DIR & "\Install\Palette.ott", $PH & "\", 1)
    FileCopy($DIR & "\Install\NewStart.exe", $PH & "\", 1)
    FileCopy($DIR & "\Install\To-Do Checkbox.exe", $PH & "\", 1)
    If GUICtrlRead($CH1) = $GUI_CHECKED Then
    FileCreateShortcut($PH & "\To-Do Checkbox.exe", @DesktopDir & "\To-Do Checkbox.lnk")
    EndIf
    If GUICtrlRead($CH2) = $GUI_CHECKED Then
    Run($PH & "\To-Do Checkbox.exe")
    EndIf
    EndIf
    Case $MSG = $EXIT
    Exit
    ; wenn Button gedrückt
    Case $MSG = $SelectPfad
    ; Input-Feld mit Pfaddialog füllen
    GUICtrlSetData($PFAD,FileSelectFolder("Bitte Pfad wählen",""))
    EndSelect
    WEnd

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Super, danke für die schnelle hilfe :thumbup:
    auf GUICtrlSetData wäre ich jetz nie gekommen, muss noch mal bissl die Hilfe durchlesen. ^^