由于 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或其他地方。