由于 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;
}
}
到目前为止,这对我们来说效果很好,但我不确定我有多喜欢浏览注册表。这是一种非常标准的做法还是有更好的方法?
编辑:哇,该代码在预览中看起来更漂亮。下次我会考虑链接到 pastebin 或其他东西。