如何强制使用新鲜且独立的 Word 实例



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

描述这一点的最佳方法是右键单击任务栏中的 Word 或 Excel 并打开一个新的 Word(或 Excel(窗口(而不是打开文件(的效果。每次这样做时,您似乎都会得到一个完整且独立的实例。

似乎以下代码:

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

。如果 Word 当前在 PC 上运行,将在现有窗口中打开。如何强制使用新鲜且独立的 Word 实例?

如果项目引用了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应用程序的独立实例的主题:您可能还想参考这个SO答案。

最新更新