如何解决如何区分具有相同名称的多个进程并杀死所有在C#中以我的USERNAME运行的进程?
我的系统上的任务管理器中正在运行多个名为COM SURROGATE(dllhost.exe)的进程。在其中,我需要杀死所有使用USERNAME运行的进程(一个正在使用SYSTEM /“”运行,因此无需杀死它)。
我需要执行以下操作,但仅适用于以myusername运行的dllhost进程:
{{1}}
解决方法
我找到了解决方案。以下是要点: 没有管理员访问权限,我们无法关闭由SYSTEM /“” / otheruser等运行的进程,因此process.kill()会引发访问被拒绝错误。
通过使用下面的内容,我们尝试使用dllhost.exe的名称终止所有进程(我们可以写任何进程名称),并使用Style.Hidden,以便用户看不到cmd提示符,甚至看不到消息。 消息可能像: 错误:具有PID 6332的进程“ dllhost.exe”无法终止。 原因:访问被拒绝。 [正在与系统或其他用户一起运行] 成功:PID 15320的进程“ dllhost.exe”已终止。 [使用我的用户名运行,该用户名可以关闭,没有任何问题]
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 /IM dllhost.exe /F";
process.StartInfo = startInfo;
process.Start();
代码将仅关闭使用我的用户名运行的所有进程。干杯。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。