在C#中,调用EXCEL后不能在程序中及时释放掉资源,表现为在进程里出现EXCEL的进程去不掉。在网上查了许多方法都不能成功,说是微软的一个BUG,今天终于在一博客上看到解决方法,直接Kill掉增加的EXCEL进程而不改变其他用户打开的进程.....
using System.Runtime.InteropServices;//首先添加引用
[DllImport("User32.dll", CharSet = CharSet.Auto)] //调用API函数,目的获取新增EXCEL进程的进程ID
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
IntPtr t = new IntPtr(excel.Hwnd); //获取EXCEL的句柄
int k = 0;
GetWindowThreadProcessId(t, out k); //利用句柄获取进程ID
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
p.Kill(); //杀死进程