Einzelnen Beitrag anzeigen

FunkyT

Registriert seit: 26. Okt 2007
2 Beiträge
 
#7

Re: Echten Pfadnamen unter Vista ermitteln...

  Alt 26. Okt 2007, 10:46
Zitat von karlkoch:
Bei mir gibt ExtractFilePath(Application.Exename) immer den echten Pfadnamen zurück, unter Vista ist das c:\program files.
Es ist in Vista eher umgedreht der Fall, das immer nur die echten Pfade zurückgegeben werden, und die Anwendung selber diesen Pfad "lokalisieren" muss (das was der Explorer macht). Das sieht man an all den Programmen die alte Setup-Routinen verwenden, dort ist der Standardpfad im deutschen Vista auch "program files".
Ich habe unter VISTA Probleme mit dem echten Pfadnamen bzw. dem Link darauf:
Die Funktion Application.Exename liefert bei direktem Aufruf meiner Test.Exe 'c:\program files\myApp\Test.Exe'. Bei Aufruf der Exe mittels eines weiteren Programms über DDE wird ebenfalls dieser korrekte Pfad geliefert, falls im aufrufenden Programm der Pfad der "DDE.ServiceApplication" auf 'C:\program files\myApp\Test.Exe' zeigt.
Soweit ist das alles wunderbar.

Ist im aufrufenden Program jedoch der Pfad der "DDE.ServiceApplication" auf den lokalisierten (Link-)Pfad 'C:\PROGRAMME\myApp\Test.Exe' gesetzt, so liefert Application.Exename der aufgerufenen Test.Exe den lokalisierten (Link-)Pfad 'C:\PROGRAMME\myApp\Test.Exe' zurück.

Es ist kein Unterschied, ob ich Application.ExeName oder ParamStr (0) verwende.
Dieses nette Verhalten bereitet mir einige Kopfschmerzen...

Ich habe schon diverse Foren durchsucht, aber keine Funktion gefunden, welche diese lokalisierten Links in reale Pfade (oder umgekehrt) konvertiert. Die Api-Funktion SHGetLocalizedName ist z.B. auf Pfade nicht anwendbar.
Kenn jemand eine Lösungsmöglichkeit für dieses Problem ?

1000nd Dank schonmal !
  Mit Zitat antworten Zitat