我的应用程序创建了一个嵌入在窗体中的winword的新实例。
new Microsoft.Office.Interop.Word.ApplicationClass()
用户完成编辑后,我关闭了窗口,但是winword实例仍然在后台运行。
如何杀死该特定实例?我知道如何杀死在机器上运行的所有实例,但这不是一个选项。
答案 0 :(得分:1)
您需要致电
application.Quit()
在您的代码中。
我必须在我的系统上做的一件事(它是一个excel处理工具)是在Quit事情仍在进行之后进行一次进程终止。
var openedExcel = System.Diagnostics.Process.GetProcessesByName("EXCEL");
if (openedExcel.Any())
{
foreach (var excel in openedExcel)
{
try { excel.Kill(); }
catch { }
}
}
答案 1 :(得分:1)
有不同的方法(Marshal.ReleaseComObject
是我认为最常用的方法。)
我建议您阅读有关发布Office应用程序实例的官方文档。它可以在这里找到:Microsoft .NET Development for Microsoft Office / Releasing COM Objects
答案 2 :(得分:0)
我建议你将以下代码组合/添加到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();
}
}
答案 3 :(得分:0)
杀死Winword Document的特定实例。
foreach (var process in Process.GetProcessesByName("WINWORD"))
{
if (process.MainWindowTitle.Contains("Temp")) // Temp is document name.
process.Kill();
}