我在Visual Studio上开发了一个非常小而简单的VB应用程序,其作用是:
Excel没有人机界面(即Excel_Application.Visible = False
)。
完成计算(并检索结果)后,执行以下命令:
:
Excel_Workbook.Close(False)
Excel_Workbook = Nothing
Excel_Application.Quit()
Excel_Application = Nothing
:
即使执行了这些语句,查看任务管理器时也会显示Excel进程。当要求应用程序结束时(例如,单击窗口的“X”按钮),将删除此过程。
应该注意的是,如果我打开图形界面,任务栏中的图标会在Excel_Application.Quit()
之后消失,但后台进程仍然存在。
我需要能够在不关闭应用程序的情况下不留下任何后台进程。
我在网上搜索并找到了一些建议,但都没有。
答案 0 :(得分:0)
我建议获取创建Excel应用程序的过程,然后将其关闭:
Imports System.Diagnostics
Imports Excel = Microsoft.Office.Interop.Excel
Sub UseExcel()
Dim xlApp = New Excel.Application With {.Visible = True}
Dim xlHwnd = New IntPtr(xlApp.Hwnd)
Dim proc = Process.GetProcesses().First(Function(p) p.MainWindowHandle = xlHwnd)
'// Do the work with Excel...
'// In the end:
proc.Kill()
End Sub