在Visual Studio 2010中获取硬件信息时出错

时间:2014-02-24 07:41:23

标签: c# winforms visual-studio-2010 hardware-id

我有一个C#项目,我试图通过注册硬件ID的组合来部署保护机制。

我正在使用ManagementObjectSearcher类。以下是一些命令:

ManagementObjectSearcher cpuget = new ManagementObjectSearcher("Select * From Win32_processor");
ManagementObjectSearcher mainboardget = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
ManagementObjectSearcher biosget = new ManagementObjectSearcher("Select * From Win32_BIOS");

用于获取我拥有的ID:

foreach (ManagementObject mo in cpuList)
    {
        cpuid = mo["ProcessorID"].ToString();
    }
foreach (ManagementObject mo in mainboardlist)
    {
        mbid = mo["SerialNumber"].ToString();
    }

这一直很好。但是,某些机器中的 * (我在10台PC上进行了测试,两台是违约者) * 出现了错误消息。

Reference not set to Instance of an Object

为什么这样?请帮助。

1 个答案:

答案 0 :(得分:0)

最困难的问题是最狡猾的答案。周期。

我所要做的就是检查管理对象类中的空组件。

foreach (ManagementObject mo in cpuget.Get())
 {
    if (mo["ProcessorID"] != null)
    cpuid = mo.GetPropertyValue("ProcessorID").ToString();
 }

类似的是mbid

什么是dufus? :|

P.S。:@ L.B建议这样做。给他更大的力量。