我有一个不关闭的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();
}
但我不知道如何杀死我开始的过程。
答案 0 :(得分:1)
我认为您需要释放Excel COM对象才能正常关闭
Marshal.FinalReleaseComObject(xlWorkSheet);
xlWorkBook.Close(false);
Marshal.FinalReleaseComObject(xlWorkBook);
xlApp.Quit();
Marshal.FinalReleaseComObject(xlApp)
答案 1 :(得分:1)
当你创建一个进程时,尝试将它的句柄保存在一个变量中,比如使用CreateProcess API,它会将HANDLE返回给你创建的进程,使用该HANDLE,你总是可以使用GetProcessID API获取进程ID。