1

我们有一个 C# WPF 应用程序,它有一个按钮,它只使用默认文档路径作为参数启动 Word,因此用户在保存文档时会自动到达正确的文件夹。

我们使用 NetOffice 启动 Word 并设置默认路径。但是,这会影响加载项的加载。自上次 Office 更新以来,一些用户在使用该按钮启动 Word 时没有加载任何加载项。为了解决这个问题,我尝试简单地使用 Process.Start() 启动 Word(这解决了 AddIns 的消失),然后使用 NetOffice 获取活动的 Word 实例来设置默认文档路径。

但是 NetOffice 总是在使用时启动一个新的 Word 实例:

var nativeProxy = Marshal.GetActiveObject("Word.Application")
var activeWordApplication = new Word.Application(null, nativeProxy)

或者:

var activeWordApplication = Word.Application.GetActiveInstance(true);

如何获取使用 Process.Start() 启动的 Word 实例?我查看了其他人的 NetOffice 示例和问题,但我每次都得到一个新实例。

提前致谢!

4

1 回答 1

0

您无法访问手动创建的 Word 进程。NetOffice 使用 COM/interop 与 Word 进行通信,这将始终创建和“自动化”Word 实例。

在 Process Explorer 中,您将看到这样的 Word 进程是使用/automate参数启动的。这是由 COM+ 体系结构自动完成的,并且是设计使然。

于 2020-09-04T23:08:20.893 回答