Pfad von start.exe auslesen

  • Hallo zusammen,

    für den Ablauf meines Programms benötige ich den Pfad, aus welchem es gestartet wurde.
    Wie lies ich diesen am besten aus?

    Als Beispiel:
    Meine kompilierte .exe liegt im Verzeichnis \\netzfreigabe.domäne.net\versteckte_Freigabe$\Ordner\start.exe

    Wenn ich nun das Programm starte, dann soll mir dieser Pfad ausgelesen werden, damit ich ihn im Programm weiter verwenden kann.
    Es soll also immer der Pfad ausglesen werden, in dem die .exe gerade liegt.

    Momentan mache ich das so:

    [autoit]

    $ordnerpfad = ControlGetText("[CLASS:CabinetWClass]", "", "Edit1")

    [/autoit]

    Das ist aber unschön, da hierzu der Explorer offen sein muss wenn ich die exe ausführe.

    Gibt es da einen einfacheren Weg der immer funktioniert?

    Danke euch!

    Gruß
    Fr4g3r

    Einmal editiert, zuletzt von fr4g3r (13. Januar 2010 um 12:27)

  • Genau das habe ich gesucht, danke dir!

    Man muss es nur wissen *g*

    Jetzt noch schnell nen Trim drauf machen, dann passt, perfekt!

    Gruß
    Fr4g3r

  • Hi,

    ich will keine Korinthen....
    @ScriptDir sollte reichen...

    MsgBox(0,"",@ScriptDir)

    ;-))
    Stefan

  • Hi,
    die Einzelteile eines Pfades bekommt man man sehr einfach per

    [autoit]

    _pathsplit()

    [/autoit]

    . Da kann man sich das trimmen weitgehend sparen...

    • Offizieller Beitrag

    Den Sinn der Funktion "_PathSplit" habe ich nie so ganz verstanden. Wozu gibt es StringRegExp?

    [autoit]


    #include <Array.au3>
    $sPath = @ScriptFullPath
    $aPath = StringRegExp($sPath, '(.\:|\\\\[^\\]+)(\\*.*\\)(.*)', 3)
    _ArrayDisplay($aPath, 'Festplattenpfad')

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

    $sPath = '\\netzfreigabe.domäne.net\versteckte_Freigabe$\Ordner\start.exe'
    $aPath = StringRegExp($sPath, '(.\:|\\\\[^\\]+)(\\*.*\\)(.*)', 3)
    _ArrayDisplay($aPath, 'Netzwerkpfad')

    [/autoit]