清除流氓Excel应用程序

本文关键字:应用程序 Excel 流氓 清除 | 更新日期: 2023-09-27 18:29:57

我有一个作业服务器,可以在Excel中自动化一天中的各种报告(使用MS Query)。一个或多个报表总是会异常终止,留下一个必须清除的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实例。第二天早上,我可以在任务管理器中手动终止这个过程,但我还没有找到在前一天晚上运行的清理工作中复制它的方法。

如果有人能告诉我如何在上面的工作中添加一个更"粗鲁"的后续任务,并会杀死任何名为EXCEL.exe的东西,我将不胜感激。

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

清除流氓Excel应用程序

似乎暴力关闭进程是可行的方法:

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

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