| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11683 人关注过本帖, 1 人收藏
标题:如何解决“OLE IDispatch 异常代码0 出自 SWbemlocator:依赖服务或组无法启 ...
只看楼主 加入收藏
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
结帖率:100%
收藏(1)
 问题点数:0 回复次数:4 
如何解决“OLE IDispatch 异常代码0 出自 SWbemlocator:依赖服务或组无法启动”?
现有如下代码段:

Local oWMI As Object,oLocal As Object,oHARDWARE As Object,object1 As Object
oWMI=Createobject("WbemScripting.SWbemLocator")
oLocal=oWMI.ConnectServer(".", "root\cimv2")
oHARDWARE=oLocal.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=1")
For Each object1 In oHARDWARE
LcIP=object1.Properties_('IPAddress').Value
Exit
Endfor
?'IP地址:',LcIP

在执行第三行 “oLocal=oWMI.ConnectServer(".", "root\cimv2") ”是出错,错误提示内容为“OLE IDispatch 异常代码0 出自 SWbemlocator:依赖服务或组无法启动”。
该问题困扰许久,不知道如何解决,请大侠支招。谢谢!!
搜索更多相关主题的帖子: IP地址 Object 如何 IP地址 Object 如何 
2015-02-28 05:53
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
代码我这运行无异常

试一下这样:
oIPs = GETOBJECT("winmgmts:")
oIPs = oIPs.InstancesOf("Win32_NetworkAdapterConfiguration")
FOR EACH oIP IN oIPs
    IF oIP.IPEnabled
        FOR EACH sIP IN oIP.IPAddress
            ? sIP
        ENDFOR
    ENDIF
ENDFOR

IPAddress属性类型是数组,如果只想取第一个IP,可直接 sIP = oIP.IPAddress[0]

[ 本帖最后由 吹水佬 于 2015-2-28 08:47 编辑 ]
2015-02-28 08:35
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
SWbemlocator 依赖 Wbemdisp.dll 文件提供的服务,检查系统有无 Wbemdisp.dll 和注册。
2015-02-28 08:53
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
谢谢楼上,已经解决了,参照了如下步骤:
1.在命令行键入以下命令:
cd /d %windir%\system32\wbem
rename Repository Rep_bak
2.建一个批处理文件如下:
Mofcomp C:\WINDOWS\system32\WBEM\cimwin32.mof
Mofcomp C:\WINDOWS\system32\WBEM\cimwin32.mfl
Mofcomp C:\WINDOWS\system32\WBEM\system.mof
Mofcomp C:\WINDOWS\system32\WBEM\wmipcima.mof
Mofcomp C:\WINDOWS\system32\WBEM\wmipcima.mfl
3。运行批处理文件。
4.运行下面内容:

cd /d %windir%\system32\wbem
for %i in (*.mof,*.mfl) do Mofcomp %i
5.重新注册 WMI 组件,在命令提示行运行以下命令:
cd /d %windir%\system32\wbem
for %i in (*.dll) do RegSvr32 -s %i
for %i in (*.exe) do %i /RegServer
2015-02-28 16:59
tqcool
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-9-3
收藏
得分:0 
回复 4楼 IHORSE
NB 试下
2016-07-14 09:24
快速回复:如何解决“OLE IDispatch 异常代码0 出自 SWbemlocator:依赖服务或组 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020169 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved