Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Process.Kill()返回拒绝的访问_C#_Process - Fatal编程技术网

C# Process.Kill()返回拒绝的访问

C# Process.Kill()返回拒绝的访问,c#,process,C#,Process,我正试图从我的C#应用程序中使用CMD命令行终止一个进程,但当我启动应用程序时,什么都没有发生。。。当我试图从命令提示符下执行kill时,我收到消息:“访问被拒绝”。我试图以管理员身份运行我的应用程序,但进程被终止。我如何才能不总是使用“以管理员身份运行” 代码: 您需要在清单中设置此项 <requestedExecutionLevel level="requireAdministrator" uiAccess="true"/> 试试这个 System.Diagnostics.P

我正试图从我的C#应用程序中使用CMD命令行终止一个进程,但当我启动应用程序时,什么都没有发生。。。当我试图从命令提示符下执行kill时,我收到消息:“访问被拒绝”。我试图以管理员身份运行我的应用程序,但进程被终止。我如何才能不总是使用“以管理员身份运行”

代码:


您需要在清单中设置此项

<requestedExecutionLevel level="requireAdministrator" uiAccess="true"/>

试试这个

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.UserName = "Administrator";
        startInfo.Password = <password>;
        startInfo.Arguments = "/C taskkill /F /IM APP.EXE";
        process.StartInfo = startInfo;
        process.Start();
System.Diagnostics.Process进程=新的System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo=新系统.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle=System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName=“cmd.exe”;
startInfo.UserName=“管理员”;
startInfo.Password=;
startInfo.Arguments=“/C taskkill/F/IM APP.EXE”;
process.StartInfo=StartInfo;
process.Start();

这意味着您的应用程序是在administrator下运行的,所以您也只能在administrator下杀死它。 尝试在其他用户下启动应用程序


希望有此帮助。

要杀死任何程序,您必须拥有足够的权限。通常只能终止属于您的进程。例如,您不能终止以管理员或系统进程身份启动的程序,至少在不提升自己的情况下是如此。要澄清的是,什么是预期的“受害者”?这个过程是从需要UAC的应用程序开始的,所以我认为这就是问题所在。。。只是一个简单的应用程序,而不是“受害者”。是的,“受害者”只是一个有趣的说法:P.好的,但如果目标程序以提升的权限运行,那么任何想要操纵它的其他程序也必须使用提升的权限,至少在这种特殊情况下是如此。即使你尝试使用任务管理器,你也必须提升它。这个应用程序应该在更多的机器上运行。@Yildirim检查David Pilkington答案!您可以将/user:Administrator添加到参数中,但始终会要求您输入passowrd@Yildirim我不知道你的意思
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.UserName = "Administrator";
        startInfo.Password = <password>;
        startInfo.Arguments = "/C taskkill /F /IM APP.EXE";
        process.StartInfo = startInfo;
        process.Start();