我正在编写一段代码,用于循环访问系统进程 (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/