C# 杀死Winword的特定实例

C# 杀死Winword的特定实例,c#,.net,winforms,com,ms-word,C#,.net,Winforms,Com,Ms Word,我的应用程序在windows窗体中创建了一个新的winword实例 new Microsoft.Office.Interop.Word.ApplicationClass() 一旦用户完成编辑,我将关闭窗口,但winword实例仍在后台运行 我怎样才能杀死那个特殊的实例?我知道如何杀死机器上运行的所有实例,但这不是一个选项 你需要打电话 application.Quit() 在你的代码中 我必须在我的系统(它是一个excel处理工具)上做的一件事是,如果退出后仍在进行,则执行进程终止 var

我的应用程序在windows窗体中创建了一个新的winword实例

new Microsoft.Office.Interop.Word.ApplicationClass()
一旦用户完成编辑,我将关闭窗口,但winword实例仍在后台运行

我怎样才能杀死那个特殊的实例?我知道如何杀死机器上运行的所有实例,但这不是一个选项

你需要打电话

application.Quit()
在你的代码中

我必须在我的系统(它是一个excel处理工具)上做的一件事是,如果退出后仍在进行,则执行进程终止

var openedExcel = System.Diagnostics.Process.GetProcessesByName("EXCEL");
            if (openedExcel.Any())
            {
                foreach (var excel in openedExcel)
                {
                    try { excel.Kill(); }
                    catch { }
                }
            }

对此有不同的方法(
Marshal.ReleaseComObject
是我认为使用最多的方法)


我建议您阅读有关发布Office应用程序实例的官方文档。此处提供:

我建议您将以下代码合并/添加到Flaviotsf的答案中,以确定运行的实际流程:

Process[] myProcList = Process.GetProcesses();
for (int i = 0; i <= myProcList.Length - 1; i ++) {
    string strProcessName = myProcList [i].ProcessName;

    string strProcessTitle = myProcList [i].MainWindowTitle();
         //check for your process name. 
    if (strProcessName.ToLower().Trim().Contains("access")) {

       myProcList [i].Kill();
    }
}
Process[]myProcList=Process.getprocesss();

对于(int i=0;iKill Winword文档的特定实例

foreach (var process in Process.GetProcessesByName("WINWORD"))
{
   if (process.MainWindowTitle.Contains("Temp")) // Temp is document name.
    process.Kill();
}  

如果您最终使用的实例在另一个窗口中也打开了一个用户的文档,该怎么办?这是一个只有几个用户的内部应用程序,这样他们就可以知道不从我为他们创建的实例中创建新文档。但是如果他们在我的windows窗体之外单独打开word,我无法关闭它可能会重复的where applicationion是Word ApplicationClassBut的实例,但如果application.Quit()没有为您完成全部工作您诉诸于杀死所有excel实例?我不能这样做您可能必须获得您的实例Id并杀死它。是的,在我的情况下,我这样做是因为处理是一次一个,服务器专门做这件事。尝试以下操作:将processId变暗为IntPtr'我们忽略返回值,由于我们不关心线程id…GetWindowThreadProcessId(application.hWnd,processId)作为Process=Process.GetProcessById(processId.ToInt32())处理