...den kompletten Pfad zur Programmdatei ermitteln?

Autor: Marc Dürst
Homepage: http://www.idev.ch

Kategorie: Sonstiges

{*****************************************
Deutsch:
******************************************}

Die meisten von Euch kennen vermutlich die die Methode

MyFileName := Application.ExeName

mit welcher Ihr den Namen der aktuellen EXE oder DLL abfragen könnt. Soweit so gut. Der Haken dabei ist, dass dies bei Diensten, Control-Panel-Apps noch bei Web-Apps funktioniert, da diese "Application's" besagte Methode nicht haben. Eine Methode (aus den frühen Pascal-Zeiten), welche immer funktioniert ist das Kommando:

MyFileName := ParamStr(0);

Richtig! Es handelt sich um den 0-ten Kommandozeilenparameter. Windows macht das so, das dies der eigene Name ist. Wenn Ihr also in jedem Fall den Pfad zu Eurem Programm zur Laufzeit ermitteln wollte, geht das beispielsweise so:

MyFilePath := ExtractFilePath(ParamStr(0));


{*****************************************
ENGLISH:
******************************************}

As most of you know the method

MyFileName := Applicatoin.ExecName;

to get the filename (incl. path) to the current executable (exe or dll). Well, this is ok but doesn't work for things like service-apps, controlpanel-apps, web-apps, etc. as the application object of thouse doesn't have the ExecName property. A function which works in every case is

MyFileName := ParamStr(0);

You're right! It's the command line parameter number zero. This is the way Windows does it. If you'd like to get the path to your program at runtime your can do something like:

MyFilePath := ExtractFilePath(ParamStr(0));

 

printed from
www.swissdelphicenter.ch
developers knowledge base