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

C# 如何检测CPU是32位还是64位,c#,.net,cpu,32bit-64bit,cpu-cores,C#,.net,Cpu,32bit 64bit,Cpu Cores,我想检测CPU的功能(特别是如果它是32/64位CPU) 这些机器运行在32位操作系统(WinXP)上,我想检测这些机器是否能够安装64位操作系统 (顺便说一句:在这一点上,我知道如何检测内核的数量…您可以使用WMI获取有关每个CPU的更多详细信息 可以使用以下代码获取每个属性的值: ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Proces

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

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


(顺便说一句:在这一点上,我知道如何检测内核的数量…

您可以使用WMI获取有关每个CPU的更多详细信息

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

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位操作系统所需的正确属性

,或者是否要使用所有WMI类,您可以使用


我以前使用过它,它对我帮助很大。

也许这可以帮助你检测CPU架构。看看[here][1]和[here][2],他们已经得到了回答[1]:[2]:@ahawkthomas:我认为这些回答说明了当前安装的操作系统,不是CPU本身。@Solaflex:我已经知道如何检测内核了。对不起,马丁·穆德,你说得对。也许这会有帮助?它是基于……嗯。。。那个“比特”部分是我正在烦恼的。。。正如我提到的:我知道如何找到#内核。正如我告诉过你的,你可以使用
AddressWidth
属性来了解CPU是否支持64位操作系统,很抱歉,我在代码中添加了
NumberOfCores
作为示例,我刚刚编辑它来编写
AddressWidth
表示操作系统架构的
AddressWidth
,但是您可以使用
DataWidth
属性来获取CPU架构,请检查