指定したプロセス名のすべてのプロセスを取得するには、Process.GetProcessesByNameメソッドを使います。プロセス名を指定する以外は、使い方はGetProcessesメソッドとほぼ同じです。
次の例では、ローカルコンピュータ上で実行されている"notepad"という名前のプロセス(通常はメモ帳)を取得し、そのプロセスIDとメインウィンドウのキャプションを出力しています。
'ローカルコンピュータ上で実行されている"notepad"という名前の 'すべてのプロセスを取得 Dim ps As System.Diagnostics.Process() = _ System.Diagnostics.Process.GetProcessesByName("notepad") '配列から1つずつ取り出す Dim p As System.Diagnostics.Process For Each p In ps 'IDとメインウィンドウのキャプションを出力する Console.WriteLine("{0}/{1}", p.Id, p.MainWindowTitle) Next p
//ローカルコンピュータ上で実行されている"notepad"という名前の //すべてのプロセスを取得 System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName("notepad"); //配列から1つずつ取り出す foreach (System.Diagnostics.Process p in ps) { //IDとメインウィンドウのキャプションを出力する Console.WriteLine("{0}/{1}", p.Id, p.MainWindowTitle); }
結果例: 1204/CONFIG.SYS - メモ帳 492/無題 - メモ帳 592/AUTOEXEC.BAT - メモ帳
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。