首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NetOffice获取C# active Word

使用NetOffice获取C# active Word
EN

Stack Overflow用户
提问于 2019-09-13 01:45:13
回答 1查看 213关注 0票数 1

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

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

但是,在使用以下两种方法时,NetOffice始终会启动新的Word实例:

代码语言:javascript
复制
var nativeProxy = Marshal.GetActiveObject("Word.Application")
var activeWordApplication = new Word.Application(null, nativeProxy)

或者:

代码语言:javascript
复制
var activeWordApplication = Word.Application.GetActiveInstance(true);

怎样才能得到我用Process.Start()开始的Word实例?我查看了其他人的NetOffice示例和问题,但每次都只得到一个新的实例。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-09-05 07:08:21

您不能访问手动创建的Word流程。NetOffice使用COM/互操作与Word进行通信,这将始终创建Word的“自动化”实例。

在Process Explorer中,您将看到这样的Word process是使用/automate参数启动的。这是由COM+架构自动完成的,而且是通过设计实现的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57912049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档