现在我将来解释如何在C#中用WMI(Windows Management Instrumentation)来获取电脑的硬件信息。
我们的目的是用WMI的api在C#下获取电脑的以下信息:
物理处理器的数量
逻辑处理器的数量
位数
系统构架
内核数量
在Visual Studio中创建一个控制台应用程序,并且右击引用然后选择“添加引用”,再选择“System.Management”。
现在已经通过using语句包括了System.Management,你可以在你的代码中使用WMI类引用了。
这里是生成硬件信息的完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
GetCpuDetails();
}
private static void GetCpuDetails()
{
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
Console.WriteLine("Number Of Physical Processors: {0} ", item["NumberOfProcessors"]);
Console.WriteLine("Number Of Logical Processors: {0} ", item["NumberOfLogicalProcessors"]);
}
var numberOfCores = 0;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
numberOfCores += int.Parse(item["NumberOfCores"].ToString());
Console.WriteLine("Bitness: {0}", item["AddressWidth"]);
Console.WriteLine("Architecture: {0}", GetArchitectureDetail(int.Parse(item["Architecture"].ToString())));
}
Console.WriteLine("Number Of Cores: {0}", numberOfCores);
}
private static string GetArchitectureDetail(int architectureNumber)
{
switch (architectureNumber)
{
case 0: return "x86";
case 1: return "MIPS";
case 2: return "Alpha";
case 3: return "PowerPC";
case 6: return "Itanium-based systems";
case 9: return "x64";
default:
return "Unkown";
}
}
}
}
这里是以上程序的输出。
你也可以浏览 通过Win32_ComputerSystem 浏览Win32_Processor WMI 类,以获取更多详细信息。
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
原文地址:http://blog.csdn.net/nomasp/article/details/45624619