2010-05-14 9 views
6

Gibt es eine einfache Möglichkeit, einen Pfad mit Systempfadvariablen in einen absoluten Pfad zu übersetzen?Wie bekomme ich den absoluten Pfad vom Pfad mit Systempfadvariablen?

So %ProgramFiles%\Internet Explorer\hmmapi.dll wird C:\Program Files\Internet Explorer\hmmapi.dll

ich gerne wissen, ob es einen API-Aufruf ist, können dies tun, oder muss ich dies auf die harte Art und Weise zu tun und% ..% Sequenzen zu erkennen und ersetzen Sie sie mit dem entsprechenden Umgebungsvariable?

Antwort

12

können Sie die WinAPI Funktion ExpandEnvironmentStrings:

function ExpandEnvStr(const szInput: string): string; 
    const 
    MAXSIZE = 32768; 
    begin 
    SetLength(Result,MAXSIZE); 
    SetLength(Result,ExpandEnvironmentStrings(pchar(szInput), 
     @Result[1],length(Result)) - 1); 
    end; 
+0

Ja, dass die Funktion war ich suchte. Ich habe es auch selbst gefunden, nachdem ich endlich die richtigen Keywords bei Google verwendet habe. –

+4

ExpandEnvironmentStrings gibt die Länge einschließlich des Nullzeichens zurück. Daher müssen Sie 1 vom Ergebnis subtrahieren, um die Zeichenfolge ohne den Nullabschluss zurückzugeben. –

+0

Hinzugefügt -1 bis zum Ende nach # 0 – Harriv

Verwandte Themen