我正在写一段代码,我将遍历系统进程加载的模块列表(PID:4)。以下是我用来实现它的代码。
Process process = Process.GetProcessById(4);
foreach (ProcessModule pMod in process.Modules)
{
Console.Write(pMod.FileName + " ");
}
Console.WriteLine();
此代码在尝试评估模块列表时抛出System.ComponentModel.Win32Exception错误。实际上,任何属性读取或方法调用都会抛出相同的错误。任何其他进程工作正常,它能够正确列出所有模块。任何人都可以了解可能导致这种行为的原因。
答案 0 :(得分:3)
System
“进程”(在Windows计算机上使用PID 4)实际上不是一个进程,它表示一组具有SYSTEM完整性的进程。
尝试使用真实的进程PID(例如,运行Internet Explorer,并使用它的PID),看看你是否会得到异常。
答案 1 :(得分:2)
系统进程不是真正的用户模式进程,而是Windows内核(需要更好的描述)。因此,不能将其视为正常过程。