2012-09-05 154 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