方法 : プロセスによって読み込まれたライブラリを調べる
更新 : 2007 年 11 月
Process コンポーネントの Modules プロパティを使用すると、プロセスに対して読み込まれたライブラリにアクセスできます。Modules プロパティは、目的のプロセスに対して読み込まれたすべてのライブラリを含む ProcessModuleCollection 型の値のコレクションを返します。このコレクションを反復処理して、個々のライブラリを調べることができます。
プロセスのライブラリ使用状況を調べるには
対象のプロセスが Process コンポーネントによって開始されたものでない場合は、Process コンポーネントの新しいインスタンスをプロセスにバインドします。詳細については、「方法 : 既存のプロセスにバインドする」を参照してください。
モジュールのコレクションを保持する ProcessModuleCollection 型のオブジェクトを宣言します。
Modules プロパティを ProcessModuleCollection 変数に代入します。これにより、目的のプロセスのモジュールが ProcessModuleCollection オブジェクトに格納されます。
ProcessModuleCollection オブジェクトを反復処理して、個々のライブラリを表示および管理します。
次の例は、Microsoft Word に対して読み込まれたライブラリをすべて返し、それらを ListBox コントロールに表示する方法を示しています。
Dim WordProcesses() As Process Dim WordModules As ProcessModuleCollection Dim aModule As ProcessModule WordProcesses = Process.GetProcessesByName("WinWord") ' Populate the module collection. WordModules = WordProcesses(0).Modules ' Iterate through the module collection. For Each aModule In WordModules ListBox1.Items.Add(aModule.ModuleName) Next
Process[] wordapps; ProcessModuleCollection modules; wordapps = Process.GetProcessesByName("WinWord"); // Populate the module collection. modules = wordapps[0].Modules; // Iterate through the module collection. foreach (ProcessModule aModule in modules) { Listbox1.Items.Add(aModule.ModuleName); }