首页 >后端开发 >C++ >如何以编程方式检索 64 位 Windows 上的程序文件 (x86) 路径?

如何以编程方式检索 64 位 Windows 上的程序文件 (x86) 路径?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-26 15:59:11408浏览

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

检索 64 位 Windows 系统上的程序文件 (x86) 路径

为了检测用户计算机上的旧 MS-DOS 应用程序,方法涉及使用如下代码检查 Program Files 文件夹:

FileInfo(
    System.Environment.GetFolderPath(
        System.Environment.SpecialFolder.ProgramFiles) 
    + @"\MyInstalledApp"
)

虽然这适用于 Windows XP 和32 位 Vista 上,它在 64 位 Vista 上失败,因为代码返回 64 位 Program Files 文件夹,而不是通常安装应用程序的 Program Files x86 文件夹。

检索 Program Files以编程方式设置 x86 路径

要解决此问题,需要一个编程解决方案来返回 Program Files x86 文件夹的路径,无论系统配置。以下函数满足此要求:

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

    return Environment.GetEnvironmentVariable("ProgramFiles");
}

此函数通过考虑系统的位数和特定环境变量的存在来识别并返回所需文件夹的路径。它处理以下配置:

  • 32 位 Windows
  • 在 64 位 Windows 上运行的 32 位程序
  • 在 64 位上运行的 64 位程序窗户

以上是如何以编程方式检索 64 位 Windows 上的程序文件 (x86) 路径?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn