2012年3月19日 星期一

c# 判斷本機電腦是32位元還是64位元(不是.net4.0)

.NET Framework 4裡面已經有實做判斷32或64的類別庫了!
但是在3.0以下並沒有實做這類別,不過還是有辦法解決!
以下是在大陸的網站找到的範例:來源網址http://myext.cn/csharp/21258.html



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; } }
在.net4.0裡面只需要使用
  System.Environment 裡面的
Is64BitOperatingSystem判斷目前作業系統是否為 64 位元作業系統。
就可以搞定了