清除stream氓Excel应用程序

我有一个作业服务器,可以在Excel中使用MS Query自动化一天中的各种报告。 总是会有一个或多个报告exception结束,导致需要清除的Excel实例处于打开状态。

清理工作使用Interop,如下所示:

Excel.Application xl; for (int i = 0; i < 20; i++) { try { xl = (Excelx.Application)Marshal.GetActiveObject("Excel.Application"); xl.Visible = true; xl.Quit(); } catch (Exception ex) { break; } } 

大部分时间都在运行,但是偶尔我会得到一个不想死的Excel实例。 我可以在第二天早上手动杀死任务pipe理器中的进程,但是我还没有find在前一天晚上运行的清理作业中复制该进程的方法。

如果任何人都可以指示我如何添加一个后续任务的方式,以上的工作稍微“粗鲁”,将杀死任何名为EXCEL.exe,这将是欣赏的提示。

此外,我必须为机器上的每个用户运行此作业。 如果有办法,我也欢迎这个反馈。

看来,蛮力closures进程是一条路:

 foreach (var process in Process.GetProcessesByName("excel")) { process.Kill(); } 

https://stackoverflow.com/a/3345421/1278553