这是确定操作系统架构的好方法吗?

由于WMI类Win32_OperatingSystem只包含Windows Vista中的OSArchitecture,我赶紧写了一个方法,利用注册表来判断当前系统是32位还是64位系统。

private Boolean is64BitOperatingSystem()
{
    RegistryKey localEnvironment = Registry.LocalMachine.OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment');
    String processorArchitecture = (String) localEnvironment.GetValue('PROCESSOR_ARCHITECTURE');

    if (processorArchitecture.Equals('x86')) {
        return false;
    }
    else {
        return true;
    }
}

到目前为止,它对我们来说效果很好,但我不确定我有多喜欢查看注册表。这是一种非常标准的做法还是有更好的方法?

编辑:哇,该代码在预览中看起来更漂亮了。下次我会考虑链接到粘贴箱或其他东西。

请先 登录 后评论

2 个回答

Jeremy Privett
<块引用>

在 .NET 下测试 64 位的最简单方法是检查 IntPtr.Size 的值。

对于在 WOW 下运行的 32 位应用程序,我相信 IntPtr.Size 的值是 4,不是吗?

编辑:@Edit:是的。 :)

请先 登录 后评论
Curt Hagenlocher

在 .NET 下测试 64 位的最简单方法是检查 IntPtr.Size 的值。

编辑:哦!这将告诉您当前进程是否为 64 位,而不是整个操作系统。对不起!

请先 登录 后评论