我们有一个C# WPF应用程序,它有一个按钮,它只做启动Word的默认文档路径作为参数,以便用户在保存文档时自动到达正确的文件夹。
我们使用NetOffice启动Word并设置默认路径。但是,这会影响AddIns的加载。自从上一次Office更新以来,一些用户在使用按钮启动Word时没有加载任何AddIns。为了解决这个问题,我尝试使用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示例和问题,但每次都只得到一个新的实例。
提前感谢!
发布于 2020-09-05 07:08:21
您不能访问手动创建的Word流程。NetOffice使用COM/互操作与Word进行通信,这将始终创建Word的“自动化”实例。
在Process Explorer中,您将看到这样的Word process是使用/automate参数启动的。这是由COM+架构自动完成的,而且是通过设计实现的。
https://stackoverflow.com/questions/57912049
复制相似问题