1

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

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

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

4

2 回答 2

3

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

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

于 2012-05-28T10:27:31.797 回答
2

系统进程不是真正的用户模式进程,它是 Windows 内核(为了更好的描述)。因此,不能将其视为正常过程进行检查。

于 2012-05-28T10:27:23.477 回答