Verzeichnis-Pfad der Exe herausfinden
-
Hallo zusammen,
wenn ich eine mit dem Borland Builder erstelltes Programm durch öffnen eines Save-Files starte, dass ich mit dieser Anwendung verknüpft habe, so liefert mir GetCurrentDir() den Pfad dieser Datei und nicht der Exe zurück. Mit welchem Befehl ist es möglich, immer den Pfad der Exe-Datei zu erhalten, z. B auch wenn das Programm durch eine Verknüpfung auf dem Desktop gestartet wurde?
Gruss
lodi
-
Hallo
mal im Forum nach ExtractFilePath suchen
mfg, Micha
-
Das geht mit ParamStr(0). Der gibt immer den kompletten Pfad zur gestarteten Exe-Datei. In Std-C ist das argv[0] von der Main. Borland verwaltet die jederzeit greifbar als _argv.
Gruss,
Martin
-
ich machs immer so:
AnsiString TForm1::getProgDir() { AnsiString pfad = GetCommandLine(); pfad = pfad.SubString(2, pfad.Pos("Planer.exe")-2); //Planer durch deinen Prognamen ersetzen return pfad; } //--------------------------------------------------------------------------- AnsiString TForm1::getProgPfad() { AnsiString pfad = GetCommandLine(); return pfad; } //---------------------------------------------------------------------------
-
Hallo,
@Dragonfire
Ich hab dich in dem anderen Thread schon gefragt was passiert wenn jemand dein Programm von "Planer.exe" in "ichbineinprogramm.exe" umbenennt@martin.stratmann...
ParamStr(0) gibt nicht nur den Pfad sondern auch den Dateiennamen zurück. Ist jetzt die Frage ob der Dateiname benötigt wirdmfg, Micha!
-
Dragonfire schrieb:
ich machs immer so:
AnsiString TForm1::getProgDir() { AnsiString pfad = GetCommandLine(); pfad = pfad.SubString(2, pfad.Pos("Planer.exe")-2); //Planer durch deinen Prognamen ersetzen return pfad; } ...
und sobald jemand den Namen der Exe ändert geht nix mehr :p
die Variante mit ExtractFilePath und Application->ExeName ist bei Verwendung der VCL am einfachsten und es ist egal wie die Exe heißt
[Edit] etwas zu langsam