【问题标题】:How do I close a Word doc using OLE automation?如何使用 OLE 自动化关闭 Word 文档?
【发布时间】:2015-02-05 18:11:35
【问题描述】:

我正在维护一个使用 OLE 自动化嵌入 Word 的应用程序。但是,当包含文档的选项卡在某些情况下关闭时,Word 进程将挂起文件 - 即使在关闭我们的应用程序之后也是如此。

我一直在寻找如何关闭 Word 中的文件,我遇到了https://msdn.microsoft.com/en-us/library/office/ff196343.aspx,这表明我想调用某种Close 方法,但它似乎不起作用。

Word 是这样打开的:

clientSite = new OleClientSite(frame, SWT.NONE, Word97To2003ClassId, file);
automation = new OleAutomation(clientSite);

我可以调用automation.getIDsOfNames(new String[]){ "Close" })[0],它会返回1105。但是当我打电话给automation.invoke(1105) 时,它仍然让我的文档保持打开状态。知道框架关闭时如何关闭文档吗?

【问题讨论】:

    标签: java ms-word ole


    【解决方案1】:

    根据我的经验,有很多 API 方法根本不起作用。可能“关闭”就是其中之一。

    也许您可以确保OleClientSite 在选项卡或应用程序之前被释放。

    我在执行以下操作时遇到了一个对话框问题(不是很好,但很有效):

        @Override
        public boolean close() {
            // make sure clientSite is disposed first
            if (clientSite != null && !clientSite.isDisposed()) {
                clientSite.dispose();
            }
            return super.close();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多