C# 如何判断系统是64位还是32位

判断系统是否是64位的方法有很多。

对于C#来说,调用WMI是一种简单易行的方式。我们可以用Win32_Processor类里面的AddressWidth属性来表示系统的位宽。AddressWidth的值受CPU和操作系统的双重影响。

具体的值如下面的表格所示:

 


 
32bit OS64bit OS
32bit CPUAddressWidth = 32N/A
64bit CPUAddressWidth = 32AddressWidth = 64


可以用下面的C#代码得到AddressWidth的值
(注意需添加引用System.Management)

 

public static string Distinguish64or32System()
{
try
{
string addressWidth = String.Empty;
ConnectionOptions mConnOption
= new ConnectionOptions();
ManagementScope mMs
= new ManagementScope("\\\\localhost", mConnOption);
ObjectQuery mQuery
= new ObjectQuery("select AddressWidth from Win32_Processor");
ManagementObjectSearcher mSearcher
= new ManagementObjectSearcher(mMs, mQuery);
ManagementObjectCollection mObjectCollection
= mSearcher.Get();
foreach (ManagementObject mObject in mObjectCollection)
{
addressWidth
= mObject["AddressWidth"].ToString();
}
return addressWidth;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return String.Empty;
}
}

 

关于WMI(Windows Management Instrumentation)的用途还有很多很多,将在我的下一篇文章中详细的介绍。
分类: C#
posted @ 2014-06-15 15:02  zzg168  阅读(298)  评论(0)    收藏  举报