【发布时间】:2014-11-30 16:34:18
【问题描述】:
我正在尝试使用 C# 应用程序中的 CMD 命令行终止进程,但是当我启动应用程序时,什么也没有发生...当我尝试从命令提示符处终止时,我收到消息:“访问被拒绝”。我试图以管理员身份运行我的应用程序,但该进程已被终止。我怎样才能不总是使用“以管理员身份运行”?
代码:
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();
【问题讨论】:
-
要能够杀死任何程序,您必须对其拥有足够的权限。您通常只能杀死属于您的进程。例如,您不能杀死以管理员或系统进程启动的程序,至少在不提升自己的情况下是这样。澄清一下,预期的“受害者”是什么?
-
进程来自和应用程序,启动时需要 UAC,所以我认为这是问题所在......只是一个简单的应用程序,而不是“受害者”。
-
是的,“受害者”只是一种有趣的说法:P。好的,但是如果目标程序以提升的权限运行,那么 任何 想要操作它的其他程序也必须使用提升的权限,至少对于这种特殊情况。即使你用任务管理器试试,你也必须提升它。