0

我正在使用 JACOB 库。我可以创建一个新实例,activeXComponent("Word.Application")然后打开一些文件。如何获取我已经打开的文件的实例?

在我可以使用的 MS Word 宏中Windows("name.doc").Activate,“name.doc”代表文件名。如何在 JACOB 中做到这一点?

4

2 回答 2

2

您可以连接到正在运行的 Word 应用程序:

val com_wordApp: ActiveXComponent = ActiveXComponent.connectToActiveInstance("Word.Application")

这是scala代码。我不确定,但在 Java 中应该是

ActiveXComponent com_wordApp = ActiveXComponent.connectToActiveInstance("Word.Application")

然后您可以访问活动文档,例如获取书签:

val bookMarks: Dispatch = Dispatch.call(com_wordApp.getProperty("ActiveDocument").toDispatch, "Bookmarks").toDispatch

或者您可以获取所有文件:

val com_documents: AnyRef = com_wordApp.getProperty("Documents").toDispatch

对不起scala代码。我需要很多时间来完成这项工作,所以我希望我可以帮助任何人。

于 2011-12-13T13:57:19.630 回答
1

首先你打开文件,

Dispatch document1 = Dispatch.call(documents, "Open", "name.doc").toDispatch();

然后您可以打开其他文档,并且您想再次控制“name.doc”的document1。

你只需要打电话

Dispatch.call(document1, "Activate");
于 2011-07-13T02:58:34.933 回答