【发布时间】:2014-02-24 07:41:22
【问题描述】:
我有一个 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
为什么会这样?请帮忙。
【问题讨论】:
-
这 2 台电脑有什么操作系统?
-
其中一些为
mo["XXXX"]返回 null。检查.ToString()之前是否为空 -
@kostasch。所有电脑都有 Win7 x86
-
@L.B 即使我这么认为:)。所以我做了一些虚拟构建,在那里我检查了每个硬件字符串的输出。同样的错误。
-
哪一行给出了异常?
标签: c# winforms visual-studio-2010 hardware-id