2

我有一个通过互操作打开 MSWord 的应用程序

            wrdApp = new Word.Application();
            wrdApp.Visible = false;

因此,在调试时,如果我直接终止会话,就会留下一堆运行的 WINWORD.EXE*32 实例。

有没有办法让这些实例可见......请记住,创建这些实例的程序已关闭。

是的,正在运行的程序确实会清理它打开的任何实例。

在此处输入图像描述

4

2 回答 2

0

试试这个:

Word.Application App = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");

如果它不起作用,请使用以下命令:

System.Type objAppType = System.Type.GetTypeFromProgID("Word.Application");

object objApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");

objAppType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, objApp, null);
于 2013-05-23T16:09:25.970 回答
0

我注意到,如果您有一个由 interop 打开的隐藏 Word 实例,并且用户使用正常的 msword 启动图标手动打开 Msword,它会打开并取消隐藏 interop 正在使用的实例。(并且不应该对用户可见!!)

有了这个错误,您可以使用它来打开隐藏/废弃的实例。

在互操作中,您可以拥有多个 msword.exe 实例,但感觉 MS 的帮助太大了,并且暴露了隐藏的实例。

可能我的错误和往常一样,MS 对如何使用隐藏的应用程序有一些聪明的想法,或者你可能错了隐藏的实例。超越 MSWord 的想法和意图。

于 2014-09-26T10:51:43.200 回答