Frage

Abfragen, die ich versucht habe: ExpandEnvironmentStrings("%COMMONPROGRAMFILES%"), GetSpecialPath(CSIDL_PROGRAM_FILES_COMMON).

Alle entschlossen (normalerweise) c:\\Program Files (x86)\\Common Files Aus meiner 32-Bit-App. Ich muss eine Dateiversion untersuchen (normalerweise) unter c:\\Program Files\\Common Files einer 64-Bit-Anwendung.

War es hilfreich?

Lösung

Auf 64-Bit-Betriebssystemen verweist die ProgrammeW6432-Umgebungsvariable auf C: Programmdateien. Die vollständige Liste für eine 32-Bit-App in einer englischen Version von Windows:

  • ProgrammFiles => C: Programme (x86)
  • Programmdatei (x86) => C: Programme (x86)
  • Programmw6432 => c: Programmdateien
  • CommonProgramFiles => C: Programme (x86) Common -Dateien
  • CommonProgramFiles (x86) => C: Programme (x86) Common Dateien
  • CommonProgramw6432 => C: Programme Common Dateien

Nur eine Erinnerung: Dieser Ordner sollte für ein 32-Bit-Programm nichts von Interesse enthalten. Technisch. Vorsicht vor dem Umbau des Dateisystems werden Dateianforderungen von C: Programmdateien in C: Programmdateien (x86) umgeleitet. Sie müssten WoW64DisableWow64FSRectirection () verwenden, wenn Sie tatsächlich auf Dateien in diesem Verzeichnis zugreifen möchten.

Andere Tipps

%CommonProgramw6432%

static string ProgramFilesx86()
        {
            if (8 == IntPtr.Size
                || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
            {
                return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
            }

            return Environment.GetEnvironmentVariable("ProgramFiles");
        }

Brauchst du das, was du brauchst?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top