1

我有一个无法关闭的 Excel 应用程序。这是我的代码

    xlApp = new Excel.Application();
    Workbooks = xlApp.Workbooks;
    xlWorkBook = Workbooks.Open(FileUpload1.PostedFile.FileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
--------------------------------------------------------
    xlWorkBook.Close(false);
    xlApp.Quit();

现在尝试像这样杀死 Excel 进程:

Process[] exProc = Process.GetProcessesByName("EXCEL");
foreach (Process proc in exProc)
{
   proc.Kill();
}

但我不知道如何杀死我开始的进程。

4

2 回答 2

1

我认为您需要释放 Excel COM 对象才能正确关闭

Marshal.FinalReleaseComObject(xlWorkSheet);
xlWorkBook.Close(false);
Marshal.FinalReleaseComObject(xlWorkBook);
xlApp.Quit();
Marshal.FinalReleaseComObject(xlApp)
于 2013-01-04T03:26:42.593 回答
1

创建进程时,请尝试将其句柄保存在变量中,例如使用 CreateProcess API,它将 HANDLE 返回到您创建的进程,使用该 HANDLE,您始终可以使用 GetProcessID API 获取进程 ID。

于 2013-01-04T03:27:31.300 回答