WOW64: получите % x64%CommonProgramFiles от процесса на 32 бита

Запросы я попробовал: ExpandEnvironmentStrings("%COMMONPROGRAMFILES%"), GetSpecialPath(CSIDL_PROGRAM_FILES_COMMON).

Вся твердость к (обычно) c:\\Program Files (x86)\\Common Files из моего 32-разрядного приложения. Я должен проверить версию файла, установленную (обычно) под c:\\Program Files\\Common Files из 64-разрядного приложения.

7
задан Kyle Alons 22 January 2015 в 12:09
поделиться

3 ответа

В 64-разрядных операционных системах переменная среды ProgramW6432 указывает на файлы c: \ program. Полный список 32-разрядных приложений в английской версии Windows:

  • ProgramFiles => c: \ program files (x86)
  • ProgramFiles (x86) => c: \ program files (x86)
  • ProgramW6432 => c: \ program files
  • CommonProgramFiles => c: \ program files (x86) \ common files
  • CommonProgramFiles (x86) => c: \ program files (x86) \ common files
  • CommonProgramW6432 = > c: \ program files \ common files

Напоминаем: в этой папке не должно быть ничего интересного для 32-битной программы. Технически. Остерегайтесь перенаправителя файловой системы, он будет перенаправлять запросы файлов из c: \ program files в c: \ program files (x86). Вам придется использовать Wow64DisableWow64FsRedirection (), если вы действительно хотите получить доступ к файлам в этом каталоге.

15
ответ дан 6 December 2019 в 09:59
поделиться
static string ProgramFilesx86()
        {
            if (8 == IntPtr.Size
                || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
            {
                return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
            }

            return Environment.GetEnvironmentVariable("ProgramFiles");
        }

Это то, что вам нужно?

-1
ответ дан 6 December 2019 в 09:59
поделиться

%CommonProgramW6432%

5
ответ дан 6 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: