当前位置:  开发笔记 > 编程语言 > 正文

以编程方式杀死C#中vista/windows 7中的进程

如何解决《以编程方式杀死C#中vista/windows7中的进程》经验,为你挑选了0个好方法。

我想在vista/windows 7中以编程方式杀死一个进程(我不确定两者之间的UAC实现是否存在重大问题以产生影响).

现在,我的代码看起来像:

  if(killProcess){
      System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName("MyProcessName");
       // Before starting the new process make sure no other MyProcessName is running.
        foreach (System.Diagnostics.Process p in process)
        {
            p.Kill();
        }

        myProcess = System.Diagnostics.Process.Start(psi);
   }

我必须这样做,因为我需要确保如果用户崩溃程序或突然退出,则在重新启动应用程序时重新启动此辅助进程,或者如果用户想要更改此辅助进程的参数.

该代码在XP中运行良好,但在Windows 7(我假设在Vista中)失败时出现"访问被拒绝"消息.从全能的Google告诉我的内容来看,我需要以管理员的身份运行我的杀戮程序以解决这个问题,但这只是一个弱点.另一个可能的答案是使用LinkDemand,但我不理解LinkDemand的msdn页面,因为它与进程有关.

我可以将代码移动到一个线程中,但是它有许多固有的其他困难,我真的不想发现它.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有