【问题标题】:How to get the process ID by Excel object in C# [duplicate]如何在C#中通过Excel对象获取进程ID [重复]
【发布时间】:2011-11-28 13:58:29
【问题描述】:

我有一个 Excel 对象,sheet.Excel.Application eApp。

如何获取此 Excel 应用程序的进程 ID 以及如何终止该进程?

【问题讨论】:

  • 您应该可以拨打ExcelApp.Quit()。见this link
  • 在应用程序对象上调用 Quit() 通常不起作用,所以这不是一个很好的答案。有一个非常好的理由需要进程 ID,以便能够在 Excel 出去吃午饭时可靠地杀死它。

标签: c# .net excel vsto


【解决方案1】:
var app = new ApplicationClass();

...

app.Quit();

见MSDN

【讨论】:

    【解决方案2】:

    除了ApplicationClass 类的普通Quit 方法外,您还可以尝试以下方法,尽管它会受到link @Mark Pim 建议中提到的一些(但不是全部)陷阱的影响。

    System.Diagnostics.Process[] myProcesses;
    // Returns array containing all instances of Excel.
    myProcesses = System.Diagnostics.Process.GetProcessesByName("Excel");
    foreach (System.Diagnostics.Process myProcess in myProcesses)
    {
        if (myProcess.MainWindowTitle == Globals.ThisWorkbook.Application.Caption)
        {
            myProcess.Kill();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 2012-07-27
      • 1970-01-01
      • 2012-06-30
      相关资源
      最近更新 更多