using System;
using System.Collections.Generic;
using System.Text;
using System.Management;
public class Check64or32System
{
/// <summary>
/// 检查系统是32位还是64位
/// </summary>
/// <returns>0运行出错;32表示32位系统;64表示64位操作系统</returns>
public static int Distinguish64or32System()
{
try
{
//得到AddressWidth值
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();
string retVal = string.Empty;
foreach (ManagementObject mObject in mObjectCollection)
{
retVal = mObject["AddressWidth"].ToString();
}
//根据值判断,不能直接返回得到的值,
//32位返回"32",64位会因为CPU而有两个值,"N/A"或"64"
if (retVal == "32")
{
return 32;
}
else
{
return 64;
}
}
catch
{
return 0;
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Management;
public class Check64or32System
{
/// <summary>
/// 检查系统是32位还是64位
/// </summary>
/// <returns>0运行出错;32表示32位系统;64表示64位操作系统</returns>
public static int Distinguish64or32System()
{
try
{
//得到AddressWidth值
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();
string retVal = string.Empty;
foreach (ManagementObject mObject in mObjectCollection)
{
retVal = mObject["AddressWidth"].ToString();
}
//根据值判断,不能直接返回得到的值,
//32位返回"32",64位会因为CPU而有两个值,"N/A"或"64"
if (retVal == "32")
{
return 32;
}
else
{
return 64;
}
}
catch
{
return 0;
}
}
}