Problem mit Pfadangabe

  • [Blockierte Grafik: http://img.7pics.info/Unbenannt_5fe.jpg]

    Hier der Code dazu:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <ButtonConstants.au3>
    #include <File.au3>
    #include <Array.au3>

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

    ;Programme lesen
    $programme = _FileListToArray(@ScriptDir&"\Programme", "*", 2)
    _ArraySort($programme)
    ;GUI erstellen
    dim $gui_height
    If Ubound($programme)-1 < 10 Then
    $gui_height=170
    Else
    $gui_height=Ubound($programme)*17
    EndIf
    $frm_autoinstaller=GUICreate("Autoinstaller",250,$gui_height)
    ;Checkboxen erstellen
    Local $id[1]
    $programme = _FileListToArray(@ScriptDir & "\Programme", "*", 2)
    _ArraySort($programme)
    For $x = 1 to $programme[0]
    Redim $id[UBound($id) + 1]
    $id[0] = $id[0] + 1
    $id[UBound($id) - 1] = GUICtrlCreateCheckbox($programme[$x], 10, (10 + ($x - 1) * 17), 140, 15)
    Next
    ;Voreinstellungen aus INI lesen
    For $r = 1 To UBound($id) - 1
    $set=IniRead(@ScriptDir&"\Programme\settings.ini", "Programme", $programme[$r],"4")
    GUICtrlSetState($id[$r],$set)
    Next
    ;Logo und Buttons erstellen
    GUICTRLCreatePic("Programme\img.jpg",160,10,80,92)
    GUISetFont(8, 800, 0, "MS Sans Serif")
    $btn_start=GUICtrlCreateButton("Installation starten",160,107,80,50,$BS_MULTILINE)
    GUISetState (@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_start
    For $h = 1 To UBound($id) - 1
    ;INI schreiben
    IniWrite(@ScriptDir&"\Programme\settings.ini","Programme",$programme[$h],GUICtrlRead($id[$h]))
    If GUICtrlRead($id[$h]) = $GUI_CHECKED Then
    ;Externes Script ausführen
    ShellExecuteWait("Programme\autoit.exe", "Programme\"&$programme[$h] & "\install.au3")
    EndIf
    Next
    EndSwitch
    WEnd
    Exit

    [/autoit]

    Einmal editiert, zuletzt von Taek (25. Juli 2008 um 12:57)

  • Der Fehler liegt in

    [autoit]

    ShellExecuteWait("Programme\autoit.exe", "Programme\"&$programme[$h] & "\install.au3")

    [/autoit]


    -> Leerzeichen im Ordnernamen. Soviel weiß ich schon, aber wie bekomme ich das richtig?

    EDIT:

    [autoit]

    ShellExecuteWait("Programme\autoit.exe", "Programme\"&String($programme[$h])&"\install.au3")

    [/autoit]


    klappt auch nicht :(

  • Probiers mal mit dem Skript

    [autoit]


    ShellExecuteWait('"' & @ScriptDir & '\Programme\AutoIt3.exe"', '"' & @ScriptDir & '\Programme\' & $programme[$h] & '\install.au3"')

    [/autoit]
  • Ich an deiner Stelle würde immer @ScriptDir verwenden, weil dann bist du auf der sicheren Seite wenn was nicht funktioniert