在Web系统中调用Excel操作后,关闭Excel进程是个老问题
试了几种方法都无效,最后还是得采用kill进程的方案,不过跟强行kill所有Excel进程相比,下面的方案更为合理。
程序只kill当前对象相应的Excel进程。
[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);
int lpdwProcessId;
GetWindowThreadProcessId(new IntPtr(app.Hwnd), out lpdwProcessId);
System.Diagnostics.Process.GetProcessById(lpdwProcessId).Kill();
static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);
int lpdwProcessId;
GetWindowThreadProcessId(new IntPtr(app.Hwnd), out lpdwProcessId);
System.Diagnostics.Process.GetProcessById(lpdwProcessId).Kill();
特此备忘,省得以后碰到同类问题,又是一通google。