小编典典

C#-如何在Windows 64位上获取程序文件(x86)

c#

我在用着:

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

为了确定是否在用户计算机上检测到程序(这不是理想的方法,但是我正在寻找的程序是MS-DOS应用程序的正确选择,我想不出另一种方法)。

在Windows XP和Windows Vista的32位版本上,此方法工作正常。但是,在x64 Windows
Vista上,代码返回x64程序文件文件夹,而应用程序安装在程序文件x86中。有没有一种方法可以通过编程方式将路径返回到x86程序文件,而无需硬接线“
C:\ Program Files(x86)”?


阅读 262

收藏
2020-05-19

共1个答案

小编典典

下面的函数将Program Files在所有这三种Windows配置中返回x86 目录:

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

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

    return Environment.GetEnvironmentVariable("ProgramFiles");
    

    }

2020-05-19