我在用着:
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)”?
下面的函数将Program Files在所有这三种Windows配置中返回x86 目录:
Program Files
在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");
}