Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#1

Umgebungsvariablen auf Win64 / Programme-Verzeichnis sauber ermitteln

  Alt 19. Mär 2012, 16:02
Hey Leute,

ich habe ein Programm, mit dessen Hilfe verschiedene Anwendungen auf einem System installiert werden können. Die Definitionen dafür befinden sich in je einer INI. Um die ggf. bereits auf dem System befindliche Version einer Anwendung zu ermitteln, gibt man in der INI z.B. dies an:
Code:
[Script]
InstallCheck=%ProgramFiles%\Internet Explorer\iexplore.exe
Wie bekomme ich es hin, dass die Umgebungsvariablen auf einem 64 Bit Windows so aufgelöst werden, wie man das erwartet? Oder anders ausgedrückt: ich möchte auf einem 32 Bit Windows den 32 Bit Pfad herausbekommen und auf einem 64 Bit Windows den 64 Bit Pfad.

Bislang habe ich erfolglos mit den Funktionen Wow64DisableWow64FsRedirection() und Konsorten probiert, aber auch ein SHGetSpecialFolderPath(Self.Handle, buf, CSIDL_PROGRAM_FILES, False) gibt immer
Code:
C:\Program Files (x86)
zurück, so dass ich noch nicht einmal die Umgebungsvariablen manuell korrigieren könnte via SetEnvironmentVariable(). Den Pfad selbst aus der Registry auszulesen, ist ja auch nicht unbedingt die feine und bevorzugte Art...

Hat jemand Ideen?

MfG Dalai

PS: Die Sache beschränkt sich nicht unbedingt nur auf %ProgramFiles%, denn ich weiß ja vorher nicht, welche Umgebungsvariable in der INI angegeben wird.
  Mit Zitat antworten Zitat