检测32位或64位

本文关键字:64位 32位 检测 | 更新日期: 2023-09-27 18:12:32

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

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位操作系统上,该文件路径是不正确的,因为它是程序文件(x86),所以有一种方法来检测和运行不同的代码或任何东西。

检测32位或64位

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

的例子:

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

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

示例:c# -如何在Windows 64位上获取程序文件(x86)

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

        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();
        }

谢谢你的帮助:)