Heim >Backend-Entwicklung >C++ >Wie kann ich den Programmdateipfad (x86) unter 64-Bit-Windows programmgesteuert abrufen?
Um eine alte MS-DOS-Anwendung auf dem Computer eines Benutzers zu erkennen, kommt es häufig vor Der Ansatz besteht darin, den Ordner „Programme“ mit Code wie diesem zu überprüfen:
FileInfo( System.Environment.GetFolderPath( System.Environment.SpecialFolder.ProgramFiles) + @"\MyInstalledApp" )
Während dies unter Windows XP und 32-Bit-Vista funktioniert, Unter 64-Bit-Vista schlägt dies fehl, da der Code den 64-Bit-Ordner „Programme“ anstelle des Ordners „Programme x86“ zurückgibt, in dem die Anwendung normalerweise installiert ist.
Programmgesteuertes Abrufen des Pfads „Programme x86“
Um dieses Problem zu beheben, ist eine programmgesteuerte Lösung erforderlich, um den Pfad zum x86-Ordner „Programme“ unabhängig von der Systemkonfiguration zurückzugeben. Die folgende Funktion erfüllt diese Anforderung:
static string ProgramFilesx86() { if( 8 == IntPtr.Size || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTUREW6432")))) { return Environment.GetEnvironmentVariable("ProgramFiles(x86)"); } return Environment.GetEnvironmentVariable("ProgramFiles"); }
Diese Funktion identifiziert und gibt den Pfad zum gewünschten Ordner zurück, indem sie die Bitness des Systems und das Vorhandensein einer bestimmten Umgebungsvariablen berücksichtigt. Es verarbeitet die folgenden Konfigurationen:
Das obige ist der detaillierte Inhalt vonWie kann ich den Programmdateipfad (x86) unter 64-Bit-Windows programmgesteuert abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!