+
82
-

C#中kill进程提示拒绝访问?

今天用c#开发一个winform程序,需要kill进程,但是提示拒绝访问?

       private void KillProcess(string processName)
        {
            System.Diagnostics.Process myproc = new System.Diagnostics.Process();
            //得到所有打开的进程   
            try
            {
                foreach (Process thisproc in Process.GetProcessesByName(processName))
                {
                    //找到程序进程,kill之。
                    if (!thisproc.CloseMainWindow())
                    {
                        thisproc.Kill();
                    }
                }

            }
            catch (Exception Exc)
            {
                MessageBox.Show(Exc.Message);
            }
        }


高手回复

+
1
-
如果是进程是console进程(无窗口的进程),那么是可以用kill()方法的,如果进程是有窗口的,那么要调用CloseMainWindow ()

微软官方的原话是这样的:如果调用 Kill,则可能丢失进程编辑的数据或分配给进程的资源。Kill 导致进程不正常终止,因而只应在必要时使用。CloseMainWindow 使进程能够有序终止并关闭所有窗口,所以对于有界面的应用程序,使用它更好。如果 CloseMainWindow 失败,则可以使用 Kill终止进程。Kill 是终止没有图形化界面的进程的唯一方法。
by 13888888888
我知道答案,我要回答