检测32位或64位

时间:2011-10-26 15:05:21

标签: c# 64-bit 32-bit

我想从我的程序中启动一个程序,现在我可以相对容易地做到这一点,它可以使用:

protected void butVNC_ItemClick(object sender, EventArgs e)
{
   string str = @"C:\Program Files\RealVNC\VNC4\vncviewer.exe";
   Process process = new Process();
   process.StartInfo.FileName = str;
   process.Start();
}

但我的问题是,如果我的程序安装在64位操作系统上,那个文件路径不对,因为它是Program Files(x86),所以有办法检测和运行不同的代码或任何东西。

3 个答案:

答案 0 :(得分:1)

您可以使用%Program Files%环境变量指向正确的Program Files目录。它应该正确指向正确的路径。

示例:C# - How to get Program Files (x86) on Windows 64 bit

答案 1 :(得分:1)

我最终使用了这个,效果很好,非常简单:

        if (IntPtr.Size == 8)
        {
            string str = @"C:\Program Files(x86)\RealVNC\VNC4\vncviewer.exe";
            Process process = new Process();
            process.StartInfo.FileName = str;
            process.Start();
        }

        else if (IntPtr.Size == 4)
        {
            string str = @"C:\Program Files\RealVNC\VNC4\vncviewer.exe";
            Process process = new Process();
            process.StartInfo.FileName = str;
            process.Start();
        }

感谢您的帮助,但是:)

答案 2 :(得分:1)

从.NET 4.0开始,您可以使用Environment.Is64BitProcess

示例:

if (Environment.Is64BitProcess)
{
   // Do 64 bit thing
}
else
{
   // Do 32 bit thing
}