我试过的查询:ExpandEnvironmentStrings("%COMMONPROGRAMFILES%")
, GetSpecialPath(CSIDL_PROGRAM_FILES_COMMON)
.
所有解决(通常)c:\\Program Files (x86)\\Common Files
从我的 32 位应用程序。我需要检查(通常)安装在c:\\Program Files\\Common Files
64 位应用程序下的文件版本。
在 64 位操作系统上,ProgramW6432 环境变量指向 c:\program 文件。英文版 Windows 上 32 位应用程序的完整列表:
提醒一下:该文件夹不应包含 32 位程序感兴趣的任何内容。从技术上讲。当心文件系统重定向器,它会将文件请求从 c:\program files 重定向到 c:\program files (x86)。如果您确实想访问该目录中的文件,则必须使用 Wow64DisableWow64FsRedirection()。
%CommonProgramW6432%
static string ProgramFilesx86()
{
if (8 == IntPtr.Size
|| (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
{
return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
}
return Environment.GetEnvironmentVariable("ProgramFiles");
}
这是你需要的吗?