指定したコンピュータ上の各プロセス リソースごとに新しい Process コンポーネントを作成します。
Overloads Public Shared Function GetProcesses( _
ByVal machineName As String _) As Process()
[C#]
public static Process[] GetProcesses(stringmachineName);
[C++]
public: static Process* GetProcesses(String* machineName) [];
[JScript]
public static function GetProcesses(
machineName : String) : Process[];
パラメータ
- machineName
プロセスの一覧を読み取る対象のコンピュータ。
戻り値
指定したコンピュータ上で実行されているすべてのプロセス リソースを表す Process 型の配列。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | machineName パラメータの構文が無効です。長さがゼロ (0) の可能性があります。 |
ArgumentNullException | machineName パラメータが null 参照 (Visual Basic では Nothing) です。 |
PlatformNotSupportedException | オペレーティング システム プラットフォームが、リモート コンピュータでのこの操作をサポートしていません。 |
InvalidOperationException | プロセス情報を取得するために使用するパフォーマンス カウンタ API へのアクセスに問題があります。この例外は、Windows NT、Windows 2000、および Windows XP に固有です。 |
Win32Exception | 基になるシステム API へのアクセスで問題が発生しました。 |
解説
このメソッドを使用して、新しい Process コンポーネントの配列を作成し、指定したコンピュータ (通常、リモート コンピュータ) のすべてのプロセス リソースに関連付けます。プロセス リソースは、ローカル コンピュータ上にあらかじめ用意しておく必要があります。 GetProcesses はシステム リソースを作成せず、アプリケーションで生成された Process コンポーネントにリソースを関連付けるからです。オペレーティング システム自身がバックグラウンド プロセスを実行しているため、この配列が空になることはありません。
コンピュータ上で実行中のすべてのプロセスを取得したくない場合は、 GetProcessById メソッドまたは GetProcessesByName メソッドを使用すると数を制限できます。 GetProcessById は、メソッドに渡したプロセス ID によってシステム上で識別されるプロセスに関連付けられた Process コンポーネントを作成します。 GetProcessesByName は、関連付けられたプロセス リソースがメソッドに渡した実行可能ファイルを共有する Process コンポーネントの配列を作成します。
この GetProcesses メソッドのオーバーロードは、通常、ネットワーク上のリモート コンピュータで実行されているプロセス リソースの一覧を取得するために使用されますが、"." を渡してローカル コンピュータを指定することもできます。
Windows 98 プラットフォームに関する注意点: machineName パラメータは Windows 98 ではサポートされていません。
使用例
[Visual Basic, C#, C++] 現在のプロセスの情報、ローカル コンピュータで実行しているメモ帳のすべてのインスタンス、コンピュータのエイリアスと IP アドレスで指定されたコンピュータで実行しているメモ帳のすべてのインスタンス、ローカル コンピュータおよびリモート コンピュータで実行しているすべてのプロセス、ローカル コンピュータまたはリモート コンピュータにおいて指定されたプロセス ID で実行しているプロセスの情報を取得する例を次に示します。
Imports System
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
_
'/ <summary>
'/ Shell for the sample.
'/ </summary>
Public Class MyProcess
Public Sub BindToRunningProcesses()
' Get the current process.
Dim currentProcess As Process = Process.GetCurrentProcess()
' Get all instances of Notepad running on the local
' computer.
Dim localByName As Process() = Process.GetProcessesByName("notepad")
' Get all instances of Notepad running on the specifiec
' computer.
' 1. Using the computer alias (do not precede with "\\").
Dim remoteByName As Process() = Process.GetProcessesByName("notepad", "myComputer")
' 2. Using an IP address to specify the machineName parameter.
Dim ipByName As Process() = Process.GetProcessesByName("notepad", "169.0.0.0")
' Get all processes running on the local computer.
Dim localAll As Process() = Process.GetProcesses()
' Get all processes running on the remote computer.
Dim remoteAll As Process() = Process.GetProcesses("myComputer")
' Get a process on the local computer, using the process id.
Dim localById As Process = Process.GetProcessById(1234)
' Get a process on a remote computer, using the process id.
Dim remoteById As Process = Process.GetProcessById(2345, "myComputer")
End Sub 'BindToRunningProcesses
Public Shared Sub Main()
Dim myProcess As New MyProcess()
myProcess.BindToRunningProcesses()
End Sub 'Main
End Class 'MyProcess
End Namespace 'MyProcessSample
[C#]
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
/// <summary>
/// Shell for the sample.
/// </summary>
public class MyProcess
{
public void BindToRunningProcesses()
{
// Get the current process.
Process currentProcess = Process.GetCurrentProcess();
// Get all instances of Notepad running on the local
// computer.
Process [] localByName = Process.GetProcessesByName("notepad");
// Get all instances of Notepad running on the specifiec
// computer.
// 1. Using the computer alias (do not precede with "\\").
Process [] remoteByName = Process.GetProcessesByName("notepad", "myComputer");
// 2. Using an IP address to specify the machineName parameter.
Process [] ipByName = Process.GetProcessesByName("notepad", "169.0.0.0");
// Get all processes running on the local computer.
Process [] localAll = Process.GetProcesses();
// Get all processes running on the remote computer.
Process [] remoteAll = Process.GetProcesses("myComputer");
// Get a process on the local computer, using the process id.
Process localById = Process.GetProcessById(1234);
// Get a process on a remote computer, using the process id.
Process remoteById = Process.GetProcessById(2345, "myComputer");
}
public static void Main()
{
MyProcess myProcess = new MyProcess();
myProcess.BindToRunningProcesses();
}
}
}
[C++]
#using <mscorlib.dll>
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
int main() {
// Get the current process.
Process* currentProcess = Process::GetCurrentProcess();
// Get all instances of Notepad running on the local
// computer.
Process* localByName[] = Process::GetProcessesByName(S"notepad");
// Get all instances of Notepad running on the specific
// computer.
// 1. Using the computer alias (do not precede with "\\").
Process* remoteByName[] = Process::GetProcessesByName(S"notepad", S"myComputer");
// 2. Using an IP address to specify the machineName parameter.
Process* ipByName[] = Process::GetProcessesByName(S"notepad", S"169.0.0.0");
// Get all processes running on the local computer.
Process* localAll[] = Process::GetProcesses();
// Get all processes running on the remote computer.
Process* remoteAll[] = Process::GetProcesses(S"myComputer");
// Get a process on the local computer, using the process id.
Process* localById = Process::GetProcessById(1234);
// Get a process on a remote computer, using the process id.
Process* remoteById = Process::GetProcessById(2345, S"myComputer");
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (完全信頼を指定して System.Diagnostic.Process のメンバを呼び出すためのアクセス許可) PermissionState.Unrestricted (関連する列挙体)
参照
Process クラス | Process メンバ | System.Diagnostics 名前空間 | Process.GetProcesses オーバーロードの一覧 | MachineName | GetProcessById | GetProcessesByName | GetCurrentProcess