2012-09-05 118 views
0

我正在使用C#中的WPF应用程序自动执行Word文档。检查Word是否已正确终止

在应用程序中创建一个Word对象与

_applicationWD = new Microsoft.Office.Interop.Word.Application(); 

和我一起

_applicationWD.Quit(Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges); 

一切都整齐地放在try/catch语句终止它。由于Quit是最后一个可能出错的地方,我需要检查Quit语句是否成功,然后尝试以其他方式终止它,否则我将在进程列表中有很多WinWord.exe。

是否有任何方法来检查Word是否关闭或可能获得进程的PID并强制它从代码中终止?

回答

2

这应该杀死所有的WINWORD过程

 try 
     { 
      System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("WinWord"); 
      foreach (var myproc in procs) 
       myproc.Kill(); 


     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message.ToString()); 
     } 
+0

很好的建议,有一个问题,虽然有可能是一个字一个用户,而不是应用程序打开的其他情况下,我不能终止它们。我需要找出我的应用程序启动并终止它的过程。 – klashagelqvist

+1

'_applicationWD.Quit(Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges);'然后添加'System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_applicationWD);' – S3ddi9