我试图使用Office组件来创建Word和Excel文档。不幸的是,我无法做到这一点,因为我得到了一个错误。
无法在模块“{00020905-0000-0000-C000-000000000046}”中找到“{00020906-0000-0000-C000-000000000046}”的IDispatch,v8.3
我尝试重新安装Office、我的应用程序(ALBPM)和我的接口(combsvc),但它没有工作。
我想知道如何安装IDispatch,或者如何知道它是否安装在正确的模块中。有时错误会说:
无法找到“{000209FF-0000-0000-C000-000000000046}”的IDispatch .而不是00020906-0000-0000-C 000-000000000046
我使用的代码生成这些错误是:
wordAppl.visible = false
wordDocs = wordAppl.documents
contratoTemplate = "C:\\albpmFiles\\mandatory\\aTemplate.doc"
// .doc template
convenioTemplate = "C:\\albpmFiles\\mandatory\\ConvenioModificatorio.doc"
// .doc template
saveContrato = "C:\\albpmFiles\\temp\\"
// where to save.
saveConvenio = "C:\\albpmFiles\\temp\\"
contratoName = "NewContact.doc"
wordDoc = open(wordDocs, fileName : contratoTemplate)
bookmark = item(wordDoc.bookmarks, index : "atrDescripcion")
insertAfter bookmark.range
using text = instSolicitud.atrDescripcion
bookmark = item(wordDoc.bookmarks, index : "atrObjProveedor_atrNombre")
insertAfter bookmark.range
using text = instSolicitud.atrObjProveedor.atrNombre
bookmark = item(wordDoc.bookmarks, index : "atrObjProveedor_atrDireccion")
insertAfter bookmark.range
using text = instSolicitud.atrObjProveedor.atrDireccion
filename = saveContrato + contratoName
end
// Extras - Fin
saveAs wordDoc
using fileName = filename任何关于IDispatch的信息,或者这些注册表条目,我们都非常感谢,即使你可以告诉我在哪里可以找到更多有关这方面的信息。
非常感谢。丹尼尔。
发布于 2009-01-16 00:04:38
从您得到的错误中,我假设您使用的是Word 2003。
您是否确保COM brigde服务的安装和运行正确?
combsvc -install
combsvc -start将combsvc注册为服务,然后启动它。
也请看一下ALBPM参考指南中150页底部的Word示例。
事实上,它有时工作,有时可能是ALBPM的一个问题。您正在使用最新版本和更新吗?
另一个选项--也是Word自动化中经常出现的问题--将是Word的自动实例正在显示一个模态对话框,并且正在等待用户交互。通过设置,可以切换模态对话框的显示。
Application.DisplayAlerts = 0 然而,不幸的是,这并不能阻止所有弹出窗口的显示。
实际上是否有开始使用Word的实例?如果是的话,您是否可以使窗口可见并查看是否可以打开文档,或者是否有弹出窗口阻止应用程序?
发布于 2009-01-16 00:36:06
丹尼尔,
我要在黑暗中试一试。看起来你使用的是BEA系统,我觉得它是一个基于Java的工具。从深入研究来看,combsvc实际上是一种COM桥接服务,允许ALBPM通过Java与COM对话:
Bridge.html
我想这就是你的失败之处。
关于您在IDispatch上的问题,您实际上并不安装IDispatch。IDispatch是COM使用的一个接口,用于向后期绑定的COM自动化客户端(例如ASP或VBScript)公开对象、方法和属性。这是COM基础设施的一部分,如果这一点被破坏了,那么您的机器会出现更多的问题。
我可能会建议在这里提出一个问题:
http://forums.oracle.com/forums/forum.jspa?forumID=560
发布于 2009-01-16 00:27:20
要检查您的PC上安装的COM接口,我建议您下载oleview.exe,它是Windows 2003资源工具包的一部分
我实际上有{00020906-0000-0000-C000-000000000046},但也没有IDispatch接口,并得到一个“类未注册”错误时,试图创建它的一个实例。我家里的PC没有安装office工具,这很可能是原因之一。
在过去,当自动化Office应用程序时,我总是能够与独立版本的ProgID对话,比如"Excel.Application“。确定引用正确的COM对象吗?在oleview中查看它,或者给我们提供更多的代码以供咀嚼:)
https://stackoverflow.com/questions/449016
复制相似问题