c# - Process.Kill() 访问被拒绝

标签 c# .net process kill

当我运行以下代码时,会抛出 Win32Exception 以拒绝访问。我无法通过搜索找到任何解决方案。我该如何解决这个问题?

foreach (ListViewItem list in showprocesses.SelectedItems)
{
    Process p = System.Diagnostics.Process.GetProcessById(Convert.ToInt32(list.Tag));
    if (p != null)
        p.Kill();
}

最佳答案

如果您没有必要的权限,通常会收到此错误。您必须是管理员,并且在 win vista 及更高版本中,以提升模式运行您的应用程序/进程。此外,有些进程即使作为管理员也无法终止,有些被认为是系统关键进程等,您可能需要以 system 身份运行,还有一些甚至是系统进程无法杀死,例如杀毒软件或真正的病毒,因为它们不希望您杀死它们的进程

另一种可能性是,如果进程已经终止,它也会抛出该异常,参见 MSDN

关于c# - Process.Kill() 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18129527/

相关文章:

c# - 如何使用 EntityFramework 核心包含 Collection 中的属性

c# - MVC区域路由解析

Android进程 killer

shell - Bourne Shell 中是否有像 Bash 中那样的进程替换?

c# - 通过 .NET 运行 cmd 命令?

c# - 如何取消异步任务?

java - 客户端API和服务器API的区别

.net - 什么影响 GC 的时间?

.net - 使用 Func<> 提高代码可读性的机会

c# - Gtk.Bin.Destroy() 和 Gtk.Bin.Dispose() 有什么区别