在操作EXCEL时,关闭当前进程

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

posted @ 2011-09-06 16:45  韩天伟  阅读(681)  评论(0编辑  收藏  举报