Run mit working dir

  • Heyho liebe Community.


    Ich arbeite gerade an einem Projekt, welches wenn es fertig ist sehr viele .exes beinhalten wird.
    Da es extrem unübersichtlich is so viele .exes in einem Ordner zu haben habe ich die ganzen .exes in einen unterordner gelegt
    und eine weitere .exe namens "Main.exe" erstellt welche als Panel dient bei dem man auswählen kann welches programm man gerne starten möchte.
    Wenn man jetzt z.b "xy.exe" starten will und auf "xy" button drückt wird dieser befehl ausgeführt.

    [autoit]

    ShellExecute("\Resourcen\xy.exe","","Resourcen\")

    [/autoit]

    Im Resourcen ordner sind weitere unterordner wie "Text" und xy.exe enthält befehle wie FileRead("Text\Test.txt").
    Ich habe festgestellt, wenn ich Shellexecute nehme funktioniert mein programm nicht auf anderen PCs
    dann kommt immer die Meldung \Resourcen\XY.exe wurde nicht gefunden.
    Wenn ich den befehl

    [autoit]

    run("\Resourcen\xy.exe",)

    [/autoit]

    nehme dann wird zwar xy.exe ausgeführt aber der befehl FileRead("Text\Test.txt") funktioniert nicht mehr da die Workdir nicht Resource\ ist ._..
    Dann müsste ich in xy.exe schreiben FileRead("Resource\Text\Test.txt") aber dann würde xy.exe nicht mehr gegehn wenn ich sie ohne das Panel starte.

  • Ich gebe zu - ich habs nicht verstanden was du genau machen willst und es erscheint mir (wohl weil ich es nicht verstanden habe) sehr wirr und unübersichtlich aber vielleicht doch eine kleine Hilfe:
    Mach die Pfade unabhängig vom Arbeitsverzeichnis.
    Z.B. so:

    [autoit]

    ShellExecute(@ScriptDir & "\Resourcen\xy.exe","",@ScriptDir & "\Resourcen")

    [/autoit]