如何检测CPU是32位还是64位

时间:2013-05-04 09:59:52

标签: c# .net cpu 32bit-64bit cpu-cores

我想检测操作系统的功能(特别是如果它是32/64位CPU)

机器在32位操作系统(WinXP)上运行,我想检测这些机器是否能够安装64位操作系统。

(顺便说一下:此时我知道如何检测核心数量......)

2 个答案:

答案 0 :(得分:2)

您可以使用WMI获取有关每个CPU的更多详细信息,following properties are available in the Win32_Processor class

您可以使用以下代码获取每个属性的值:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");
ManagementObjectCollection cpus = searcher.Get()
foreach (ManagementObject queryObj in cpus)
{
    Console.WriteLine("AddressWidth : {0}", queryObj["AddressWidth"]); //On a 32-bit operating system, the value is 32 and on a 64-bit operating system it is 64.
    Console.WriteLine("DataWidth: {0}", queryObj["DataWidth"]); //On a 32-bit processor, the value is 32 and on a 64-bit processor it is 64
    Console.WriteLine("Architecture: {0}", queryObj["Architecture"]); //Processor architecture used by the platform
}

我不确定AddressWidth是否是您需要确定CPU是否具有64位操作系统的正确属性

答案 1 :(得分:0)

或者,如果您想使用所有WMI类,可以使用WMI Code Creator

我之前使用它并且它帮助了我很多。