ManagementObjectSearcher ProcessorId = null

时间:2017-02-13 18:00:05

标签: c# nullreferenceexception

嘿,我试图从ManagementObjectSearcher获取ProccessorId。它对我来说很好,但是当我把我的软件交给朋友时,它给了我System.NullReferenceException。

var mbs = new ManagementObjectSearcher("Select * From Win32_processor");
var mbsList = mbs.Get();
var id = "";
foreach (var mo in mbsList)
    id = mo["ProcessorID"].ToString();
return id;

所以我将mo对象序列化为json并看到ProcessorId值为null。 {"Name":"ProcessorId","Value":null,"Type":8,"IsLocal":false,"IsArray":false,"Origin":"Win32_Processor","Qualifiers":[{"Name":"CIMTYPE","Value":"string","IsAmended":false,"IsLocal":false,"PropagatesToInstance":true,"PropagatesToSubclass":true,"IsOverridable":true}]}

我只是不明白为什么会这样。 获得ProcessorId的任何其他方法或者可能有修复方法吗?我需要它来生成系统的HWID。

P.S。 我的朋友不使用虚拟mashine。

1 个答案:

答案 0 :(得分:0)

是的,大多数处理器都没有返回值,有些人认为它本可以用来获得一些软件拷贝保护。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/b515a58a-c2b1-497f-a539-19b76b1828f4/processorid-is-null-management-class?forum=csharpgeneral

相关问题