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 に答える