Heim >Backend-Entwicklung >C++ >Wie kann ich den Programmdateipfad (x86) unter 64-Bit-Windows programmgesteuert abrufen?

Wie kann ich den Programmdateipfad (x86) unter 64-Bit-Windows programmgesteuert abrufen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 15:59:11415Durchsuche

How Can I Programmatically Retrieve the Program Files (x86) Path on 64-bit Windows?

Abrufen des Pfads der Programmdateien (x86) auf 64-Bit-Windows-Systemen

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:

  • 32-Bit-Windows
  • 32-Bit-Programm, das auf 64-Bit-Windows läuft
  • 64-Bit-Programm, das auf 64-Bit läuft Windows

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn