在操作EXCEL时,看到一个方法是杀掉所有“EXCEL”进程,这样如果有打开的文档也会被关且不提示是否保存,使用者会疯掉的,下面这种方法可以只杀当前进程
Microsoft.Office.Interop.Excel.Application m_xlApp = new Microsoft.Office.Interop.Excel.Application();
int m_k = m_xlApp.Hwnd;
//进行操作
KillProcess(m_k);//关闭进程
//关闭的方法
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
/// <summary>
/// 杀掉进程
/// </summary>
/// <param name="ID"></param>
private static void KillProcess(int ID)
{
IntPtr t = new IntPtr(ID);
int k = 0;
GetWindowThreadProcessId(t, out k); //得到本进程唯一标志k
if (k != 0)
{
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //得到对进程k的引用
p.Kill(); //关闭进程k
} }
这样就可以操作了,在循环操作中更是好用的,以前我在导出新浪BLOG到WORD时就是杀掉所有进种的,方法好用,但不太合理,用了上面的例子感觉很好