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应该是有很多原因。注册表有问题应该是关键。 |
|