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

发布于 2024-10-24 20:16:04 字数 198 浏览 7 评论 0原文

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

在 MS Word 宏中,我可以使用 Windows(“name.doc”).Activate,其中“name.doc”代表文件名。在 JACOB 怎样才能做到这一点?

I am using the JACOB library. I can create a new instance of activeXComponent("Word.Application") and then open some file. How can I get the instance of a file that I've already opened?

In MS Word macros I can use Windows("name.doc").Activate, where "name.doc" represents the file name. How can this be done in JACOB?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自由如风 2024-10-31 20:16:04

您可以连接到正在运行的 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代码。我需要很多时间来完成这项工作,所以我希望我可以帮助任何人。

You can connect to the running Word-Application:

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

This is scala code. I am not sure, but in Java it should be

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

Then you can access the Active Document, e.g. to get the Bookmarks:

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

Or you can get all documents:

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

Sorry for the scala code. I needed a lot of time to get this working, so I hope, I could help anybody.

£冰雨忧蓝° 2024-10-31 20:16:04

首先您打开文档,

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

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

你只需要打电话

Dispatch.call(document1, "Activate");

First you open document,

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

then you may open other documents, and you want to control document1 for "name.doc" again.

You just need to call

Dispatch.call(document1, "Activate");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文