分享

CreateObject("InternetExplorer.Application")出现80040111错误的解决案例

 king9413 2013-06-26
2013-6-26  king9413。
版权声明:可以任意转载,但转载时必须标明原作者king9413,原始链接以及本声明

情况:

近日,执行一vbs例子程序时出现:80040111错误:ClassFactory无法供应请求的类别(ClassFactory cannot supply requested class)。
由以下语句引起:
Set IE = WScript.CreateObject("InternetExplorer.Application")
奇怪的是,以前执行此vbs是没问题的,近日突然发生此问题。所有包含CreateObject("InternetExplorer.Application")的vbs都失败。

解决过程:
网上查询。但长时间google与baidu后,通通语焉不详,无法得到有用具体的解决方案。在Microsoft网站上查也一样。
regsvr32重新注册shdocvw.dll也是很正常。iexplore.exe也不像有损坏的痕迹。
使用工具检查IE控件,清理了一些IE控件后,问题没有解决。

只能仔细研究COM调用过程。
在研究注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0002DF01-0000-0000-C000-000000000046},突然发现,子项不对:
竟然同时有InProcServer32子项和LocalServer32子项。
InProcServer32子项值为"C:\\WINDOWS\\Downloaded Program Files\\dwa85W.dll"
LocalServer32子项值为"\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""
一般的XP系统只有LocalServer32。

研究了下:dwa85W.dll是IBM Lotus iNote 8.5 control,也不是什么乱七八糟的东东。
难道是这个子项问题?删去此项。vbs运行成功!与此同时,lotus运行没问题(莫名其妙)。

总结:
出现80040111应该是有很多原因。注册表有问题应该是关键。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多