在操作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时就是杀掉所有进种的,方法好用,但不太合理,用了上面的例子感觉很好