【问题标题】:Purging Rogue Excel Applications清除流氓 Excel 应用程序
【发布时间】:2016-01-12 18:39:05
【问题描述】:

我有一个作业服务器,可以在白天用 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 的东西,我将不胜感激。

另外,我必须为机器上的每个用户运行这个作业。如果有办法解决这个问题,我也欢迎提供反馈。

【问题讨论】:

    标签: c# excel interop taskmanager


    【解决方案1】:

    看来蛮力关闭进程是可行的方法:

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      相关资源
      最近更新 更多