判斷系統是否是64位的方法有很多。
對于C#來說,調用WMI是一種簡單易行的方式。我們可以用Win32_Processor類裡面的AddressWidth屬性來表示系統的位寬。AddressWidth的值受CPU和作業系統的雙重影響。
具體的值如下面的表格所示:
32bit OS | 64bit OS | |
32bit CPU | AddressWidth = 32 | N/A |
64bit CPU | AddressWidth = 32 | AddressWidth = 64 |
可以用下面的C#代碼得到AddressWidth的值
(注意需添加引用System.Management)
public static string Detect3264()
{
ConnectionOptions oConn = new ConnectionOptions();
System.Management.ManagementScope oMs = new System.Management.ManagementScope( " localhost " , oConn);
System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery( " select AddressWidth from Win32_Processor " );
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();
string addressWidth = null ;
foreach (ManagementObject oReturn in oReturnCollection)
{
addressWidth = oReturn[ " AddressWidth " ].ToString();
}
return addressWidth;
}