【发布时间】:2014-08-15 11:18:52
【问题描述】:
我正在尝试获取 CPU 序列号,但我做不到。我可以得到板子和硬盘,但不能得到 cpu。
下面是我的代码。我做错了什么?
public static void GetClientComputerInfo()
{
HDDSerial = "0";
BoardSerial = "0";
CPUSerial = "0";
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_DiskDrive");
foreach (ManagementObject share in searcher.Get())
{
foreach (PropertyData PC in share.Properties)
{
if (PC.Name == "SerialNumber")
{
HDDSerial = PC.Value.ToString();
}
if (PC.Name == "SerialNumber")
{
BoardSerial = PC.Value.ToString();
}
if (PC.Name == "ProcessorID")
{
CPUSerial = PC.Value.ToString();
}
}
}
}
catch
{
}
}
【问题讨论】:
-
您正在尝试获取序列号,但您的 if 语句的 CPU 部分正在检查
if (PC.Name == "ProcessorID")? -
@Thewads:PC.Name 会随着每次 foreach 迭代而变化。
-
Win32_DiskDrive 不提供处理器 ID。您可以使用“Select * FROM WIN32_Processor”来搜索处理器ID。