C# Process.GetProcessById(4) 抛出 System.ComponentModel.Win32Exception

标签 c# .net exception process module

我正在编写一段代码,用于循环访问系统进程 (PID:4) 加载的模块列表。以下是我用来实现它的代码。

Process process = Process.GetProcessById(4);
foreach (ProcessModule pMod in process.Modules)
{
    Console.Write(pMod.FileName + "   ");
}
Console.WriteLine();

每当尝试评估模块列表时,此代码都会抛出 System.ComponentModel.Win32Exception 错误。实际上,任何属性读取或方法调用都会引发相同的错误。任何其他进程都运行良好,并且能够正确列出所有模块。谁能阐明可能导致此行为的原因。

最佳答案

System“进程”(在 Windows 机器上的 PID 为 4)实际上根本不是进程,它表示一组具有 SYSTEM 完整性的进程。

尝试使用真实的进程 PID(例如,运行 Internet Explorer,并使用它的 PID),看看是否会出现异常。

关于C# Process.GetProcessById(4) 抛出 System.ComponentModel.Win32Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783063/

相关文章:

c# - Telerik 网格自定义格式更改显示的文本颜色如果 "Yes"绿色如果 "No"红色

c# - 从 Microsoft UWP 上的异步方法返回 Task<string>

c# - WPF - 发送 key Redux

c# - 使用 <%# isChecked %> 表达式设置复选框

c# - 在 XPath 中使用下划线和句点

C# 能力?

php - 如何从在 PHP 中使用自动加载加载的类中捕获异常?

java - 为什么我的 NullPointerException 没有在我的 catch block 中被捕获?

C# TCP 应用程序无法运行

java - 无法捕获 EJB 中的异常