2011-11-28 87 views
1

我有一個Excel對象,sheet.Excel.Application eApp如何通過Excel中的對象獲取進程ID#

如何獲取此Excel應用程序的進程ID,以及如何殺死該進程?

+1

強制性舊事新鏈接:http://blogs.msdn.com/b/oldnewthing/archive/2011/11/18/10238335.aspx –

+0

你應該能夠調用'ExcelApp.Quit() '。請參閱[此鏈接](http://www.craigmurphy.com/blog/?p=82) –

+0

在應用程序對象上調用Quit()往往不起作用,所以這不是一個很好的答案。有一個完美的理由需要進程ID,以便能夠在午餐時可靠地殺死Excel。 –

回答

1

除了ApplicationClass類的正常Quit方法,你可以試試下面的,雖然它是受一些,但不是全部,在link提到的陷阱@馬克皮姆建議。

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(); 
    } 
}