如何杀死在C#中的Word / Excel文件的实例

我有两个文件demo1.docx,demo2.docx.When我将打开这两个文件,然后创build两个实例到应用程序部分中的任务pipe理器,并创build一个进程WinWord.exe到进程Section.When我杀了demo1.docx实例它自动杀死另一个实例,但我只想杀死那个实例demo1.docx。 目前我正在使用这个代码杀死实例

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(); 

我们必须closures它们,而不是杀死它们。 为了控制已经运行的实例,可以使用下面的代码:

 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; } } } 

由于所有文档都在同一个进程中打开,因此查杀将会自动closures所有文档。 也许你可以使用Word Automation来closures一个特定的文档。

这里有一个工作的解决scheme: 如何closures正在运行的Word文档的实例? (C#)