我有一个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
为什么这样?请帮助。
答案 0 :(得分:0)
最困难的问题是最狡猾的答案。周期。
我所要做的就是检查管理对象类中的空组件。
foreach (ManagementObject mo in cpuget.Get())
{
if (mo["ProcessorID"] != null)
cpuid = mo.GetPropertyValue("ProcessorID").ToString();
}
类似的是mbid
。
什么是dufus? :|
P.S。:@ L.B建议这样做。给他更大的力量。