我试图从我的C#应用程序使用CMD命令行杀死一个进程,但是当我启动应用程序时什么都没有发生......当我尝试从命令提示符中杀死时,我收到消息:“访问被拒绝”。我尝试以管理员身份运行我的应用程序,并且该进程被终止。我如何管理不总是使用“以管理员身份运行”?Process.Kill()返回访问被拒绝
代码:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C taskkill /F /IM APP.EXE";
process.StartInfo = startInfo;
process.Start();
要杀死任何程序,您必须拥有足够的权限。你通常只能杀死属于你的进程。例如,你不能杀死以管理员或系统进程启动的程序,至少不能提升自己。澄清,目标“受害者”是什么? – Alejandro 2014-10-06 12:06:43
这个过程来自于需要UAC的应用程序,因此我认为这是问题...只是一个简单的应用程序,而不是“受害者”。 – Yildirim 2014-10-06 12:16:44
是的,“受害者”只是一个有趣的说法:P。好的,但是如果目标程序使用提升的权限运行,那么任何其他想要操作它的程序都必须使用提升的权限,至少在这种情况下是这样。即使你使用任务管理器来尝试它,你也必须提升它。 – Alejandro 2014-10-06 12:25:04