如何使用JACOB更改活动的MS Word窗口?

时间:2011-03-22 13:54:37

标签: java ms-word jacob

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

在MS Word宏中,我可以使用Windows("name.doc").Activate,其中“name.doc”代表文件名。如何在JACOB中完成?

2 个答案:

答案 0 :(得分:2)

您可以连接到正在运行的Word-Application:

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

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

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

然后您可以访问Active Document,例如得到书签:

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

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

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

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

答案 1 :(得分:1)

首先打开文档,

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

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

你只需要打电话

Dispatch.call(document1, "Activate");