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
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.