【问题标题】:How to force a fresh and independent instance of Word如何强制创建一个新鲜且独立的 Word 实例
【发布时间】:2020-01-31 00:41:48
【问题描述】:

无论以何种方式打开 Word(Excel 等),我的目标是实例是“安全的”且独立的。我的意思是,如果用户当前打开了一个 Word 窗口,它不会与我的软件正在打开的内容交互,并且两个窗口可以相互独立地运行。

最好的描述方式是在任务栏中右键单击 Word 或 Excel 并打开一个新的 Word(或 Excel)窗口(而不是打开文件)。每次执行此操作时,您似乎都获得了一个完整且独立的实例。

好像是下面的代码:

        Dim wdApp As Word.Application
        Dim oDoc As Word.Document
        wdApp = CreateObject("Word.Application")

... 如果 Word 当前在 PC 上运行,则将在现有窗口中打开。如何强制创建一个全新且独立的 Word 实例?

【问题讨论】:

    标签: vb.net ms-word


    【解决方案1】:

    如果项目引用了 Word API,则首选使用 New Word.Application。根据问题中的示例代码,本例就是这种情况。

    另一种可能性是创建一个新的Process 并与之挂钩。在这种情况下,不需要对 Word API 的引用(后期绑定)。

        Dim wdApp As Word.Application = New Word.Application()
        Dim oDoc As Word.Document = wdApp.Documents.Add() 'or wdApp.Documents.Open(filepath)
    

    CreateObject 不应使用现有窗口,只有 GetObject 会这样做。假设无法确认问题中的断言(我从未见过这种情况发生,三十多年来),那么CreateObject 也可以用于启动 Office 应用程序的新实例。这也不需要引用 Word API。

    关于维护Office应用程序的独立实例的话题:您可能还想参考this SO answer。

    【讨论】:

    • 感谢辛迪的编辑,特别是您的回答和 C# 参考。它完美地表达了我遇到的问题。
    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 2011-07-15
    • 2012-03-27
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    相关资源
    最近更新 更多