2014-11-24 42 views
0

我有兩個文件demo1.docx,demo2.docx.When我將打開這兩個文件,然後創建兩個實例到應用程序部分的任務管理器中,並創建一個進程WinWord。 exe進入過程Section.When我殺了demo1.docx實例它會自動殺死另一個實例,但我只想殺死該實例demo1.docx。目前我使用此代碼爲殺實例如何殺死C/Word中的Word/Excel文件實例

string instanceName="demo1.docx"; 

Process[] runingProcess = Process.GetProcesses(); 
for (int i = 0; i < runingProcess.Length; i++) 
    if (runingProcess[i].MainWindowTitle.Contains(instanceName)) 
     runingProcess[i].Kill(); 
+0

[停止進程(http://msdn.microsoft.com/en-us/library/05abh773%28v=vs.71%29 .aspx) – MethodMan 2014-11-24 20:02:28

+0

可能的重複:http://stackoverflow.com/questions/16672427/how-to-terminate-c-sharp-based-excel-application-instance – 2014-11-24 20:05:28

回答

3

我們不得不關閉他們,而不是殺死他們。要採取的實例已經在運行控制,您可以使用此代碼:

if (Process.GetProcessesByName("winword").Count() > 0) 
{ 
    Word.Application wordInstance = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); 

    foreach (Word.Document doc in wordInstance.Documents) 
    { 
     if (doc.Name == "demo1.docx") 
     { 
      doc.Close(); 
      break; 
     } 
    } 
}