我有一个通过Interop打开MSWord的应用
wrdApp = new Word.Application();
wrdApp.Visible = false;
因此,在调试时,如果我jsut杀死会话,我将留下一堆WINWORD.EXE * 32运行的实例。
有没有办法让这些实例可见......请记住,创建这些实例的程序已关闭。
是的,正在运行的程序会清理它打开的任何实例。
答案 0 :(得分: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);
答案 1 :(得分:0)
我注意到如果您有一个由interop打开的隐藏Word实例,并且用户使用正常的msword start图标手动打开Msword,则会打开并取消隐藏interop使用的实例。 (并且不应该让用户看到!!)
使用此错误您可以使用它来打开隐藏/放弃的实例。
在interop中你可以拥有多个msword.exe实例,但感觉MS有点过多并且暴露了隐藏的实例。
可能是我和往常一样的错误,MS有一些聪明的想法如何使用隐藏的应用程序,或者你错了隐藏的instaces。超越MSWord的想法和意图。