通常情况,我们是这样关闭进程的,但现在有个通过服务触发启动的进程,用下面的方法却关闭不了,不知道怎么弄,请大家指点下!
 
这个进程在进程表需要点击“显示所有用户进程”才能看到。
 
非常感谢!
 
 
 
public static void KillProcess(string nameForPros)
         {
             Process[] pros = Process.GetProcesses();
             for (int i = 0; i < pros.Length; i++)
             {
                 if (pros[i].ProcessName == nameForPros)
                 {
                     pros[i].Kill();
                 }
             }
         }

解决方案 »

  1.   

    调用命令行: ntsd -c q -p pid 
    orntsd -c q -pn explorer.exe 如果这个命令还杀不掉就很难了
      

  2.   

    先调试,查看枚举“Process.GetProcesses()”时,是否含有ProcessName = 你需要Kill的进程名称的。然后再查看运行KillProcess这个程式的帐号是否有相应的权限去结束其他帐号启动的进程。另外,要保证自己结束的进程不是系统关键进程,或者使用了防杀机制的进程。
      

  3.   

    非常感谢大家,NTSD删除不了,提示没有权限,GetProcesses可以获取到,但这个进程用户名是SYSTEM,也没有权限,这样就需要管理员权限的程序才能间接关闭这个SYSTEM进程了!
    有没有办法不用管理员权限关闭吗?用管理员权限程序时,会有个运行提示,这个对客户比较麻烦。
      

  4.   

    "有没有办法不用管理员权限关闭吗?用管理员权限程序时,会有个运行提示,这个对客户比较麻烦。"有没有不用钥匙开门就进房子的?有,只有做小偷了.运行提示是正途,看你的情形应该是有UAC控制的OS,你想要不要提示,那你就需要干掉UAC或者关闭他.这个小偷不好做~
      

  5.   

    建议lz用Autoit来写脚本把管理员密码写到里面,一句话就可以搞定了!
      

  6.   

    不是所有的进程都可以的,你关闭360safe.exe试试,我关闭了几年也关闭不了,找个软件一般的去关他,他都不理,稍微牛点的,他就显示出来,有程序要关闭他,怎么关也关闭了, 别什么任务管理器就CMD也不怎么样,估计是驱动吧,