使用ManagementClass("Win32_Processor")获取cpuid失败的解决办法[原创]

            使用ManagementClass("Win32_Processor")获取cpuid失败,代码如下:

            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                _S_RegsionGUID = mo.Properties["ProcessorId"].Value.ToString();
                break;
            }

            当获取ProcessorId时失败,提示该值为Null,对于有些计算机成功对于有些计算机失败。   查看了一些ManagementClass 相关资料:[.NET 框架中的WMI命名空间][WMI介绍及简单应用].解决办法如下:

           1、判断出问题出在WMI上;

           2、下载WMI管理工具WMITools.exe,下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en

           3、检查ProcessorId是否为空,如果为空,那么利用WMITools为其赋值。

            4、调试上面代码_S_RegsionGUID = mo.Properties["ProcessorId"].Value.ToString();就可以顺利通过了。             

posted @ 2009-02-04 17:44  hzb  阅读(4852)  评论(1编辑  收藏  举报