![]() |
Umgebungsvariablen auf Win64 / Programme-Verzeichnis sauber ermitteln
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:
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.
[Script]
InstallCheck=%ProgramFiles%\Internet Explorer\iexplore.exe Bislang habe ich erfolglos mit den Funktionen Wow64DisableWow64FsRedirection() und Konsorten probiert, aber auch ein
Delphi-Quellcode:
gibt immer
SHGetSpecialFolderPath(Self.Handle, buf, CSIDL_PROGRAM_FILES, False)
Code:
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...
C:\Program Files (x86)
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. |
AW: Umgebungsvariablen auf Win64
Wenn ich der Wikipedia (
![]() Gruß K-H |
AW: Umgebungsvariablen auf Win64
Zitat:
Code:
an. Nun geht das natürlich auf einem 64 Bit Windows schief, wenn die Variable immer nach "Program Files (x86)" aufgelöst wird, weil es eben in "Program Files" installiert ist.
InstallCheck=%ProgramFiles%\Classic Shell\ClassicStartMenuDLL.dll
Zitat:
MfG Dalai |
AW: Umgebungsvariablen auf Win64
Ich wusste ja schon immer, dass es MS drauf hat :roll:. Aber das setzt dem Ganzen die Krone auf:
Zitat:
![]() Tja, wenn niemand noch eine (bessere) Idee hat, bleibt mir wohl nichts anderes übrig, als auf die Registry zurückzugreifen, wenn %ProgramFiles% im Wert steht, obwohl man solche Pfade eigentlich nicht via Registry sondern API-Funktion ermitteln soll. MfG Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz