{System.Runtime.InteropServices.COMException (0x80040154): 没有注册类
用new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")获取硬盘序列号的时候抛出异常,异常信息如下:{System.Runtime.InteropServices.COMException (0x80040154): 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
在 System.Management.ThreadDispatch.Start()
在 System.Management.ManagementScope.Initialize()
在 System.Management.ManagementObjectSearcher.Initialize()
在 System.Management.ManagementObjectSearcher.Get()
在 CVTouch.Service.GetHardDiskID.GetHDID() 位置 F:\IIPcode\NM2009\Code\Service\GetHardDiskID.cs:行号 14}
System.Runtime.InteropServices.COMException was caught
Message=没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
Source=System.Management
ErrorCode=-2147221164
StackTrace:
在 System.Management.ThreadDispatch.Start()
在 System.Management.ManagementScope.Initialize()
在 System.Management.ManagementObjectSearcher.Initialize()
在 System.Management.ManagementObjectSearcher.Get()
在 CVTouch.Service.GetHardDiskID.GetHDID() 位置 F:\IIPcode\NM2009\Code\Service\GetHardDiskID.cs:行号 14
InnerException:
获取CPU和网卡地址的时候也同样出现问题,异常截图如下
http://home.cnblogs.com/q/27743/
求解决办法,谢谢。
--------------------编程问答-------------------- 楼主,Com组件使用前,须注册:regsvr32 ×××.dll --------------------编程问答-------------------- 我已经注册过Wmipcima.dll了,还是出现异常。。。 --------------------编程问答-------------------- 不懂,学习。。 --------------------编程问答-------------------- 你有这个组件的源码吗?如果有,启动非托管代码调试,F11直接跟进到非托管代码里面,一步步看是什么问题。。。 --------------------编程问答-------------------- 没有,Wmipcima是系统自带的dll,到目前发现好几台机器都有这样的问题,可能和系统有关,以前用XP就没发生这样的问题。
补充:.NET技术 , C#