我用WMI搜索的时候,当运行到foreach (ManagementObject mo in managementObjectCollection)这句的时候就出现了:
"提供程序加载失败"的异常,我跟踪进去,发现是提示:
在 System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
   在 System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()下面是我代码:
ManagementClass managementClass = new ManagementClass("Win32_PnPSignedDriver");
ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();
foreach (ManagementObject mo in managementObjectCollection)//异常
{
    mo.Dispose();
}PS:
1. System.Management引用已经添加
2. System.Management.Instrumentation.dll已经注册求高手,在线等...

解决方案 »

  1.   

    http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/f101e0f9-aa43-4985-931d-9b76a303ba9f
    看看MSDN,它里面很多解决方法,你试一下。
      

  2.   

    我看了下,你的写法有问题吧,你是去实例化对象。用这样的方法。
                SelectQuery selectQuery = new SelectQuery("Win32_PnPSignedDriver");
                ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
                foreach (ManagementObject mo in searcher.Get())
                {
                    return mo["ClassGuid"].ToString();
                }
                searcher.Dispose();
                
                
            }
      

  3.   

    我英语不太好,但是我大致看了下,好像里面是教如何用这个WMI的,异常的处理好像比较少
      

  4.   

    MSDN的意思是,你用别的方式去获取硬件信息,不采用Win32_PnPSignedDriver这个。
      

  5.   

    结果一样。还是提示System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
    出现问题
      

  6.   

    我这里两个都没问题啊,我的windows7
      

  7.   

    真是Win32_PnPSignedDriver的问题,Win32_PnPEntity这个可以,Win32_PnPSignedDriver就不行,真奇怪,我另外一台电脑是两个都可以(两条都是windowsXP的),所以这边我就没用另一个去试,一下子短路了。
    就这么着吧,换Win32_PnPEntity用,以后再去想这个原因,太感谢tsapi了。