Process.GetProcesses メソッド

定義

新しい Process コンポーネントの配列を作成し、既存のプロセス リソースに関連付けます。Creates an array of new Process components and associates them with existing process resources.

オーバーロード

GetProcesses(String)

指定したコンピューター上の各プロセス リソースごとに新しい Process コンポーネントを作成します。Creates a new Process component for each process resource on the specified computer.

GetProcesses()

ローカル コンピューター上の各プロセス リソースごとに新しい Process コンポーネントを作成します。Creates a new Process component for each process resource on the local computer.

GetProcesses(String)

指定したコンピューター上の各プロセス リソースごとに新しい Process コンポーネントを作成します。Creates a new Process component for each process resource on the specified computer.

public:
 static cli::array <System::Diagnostics::Process ^> ^ GetProcesses(System::String ^ machineName);
public static System.Diagnostics.Process[] GetProcesses (string machineName);
static member GetProcesses : string -> System.Diagnostics.Process[]
Public Shared Function GetProcesses (machineName As String) As Process()

パラメーター

machineName
String

プロセスの一覧を読み取る対象のコンピューター。The computer from which to read the list of processes.

戻り値

指定したコンピューター上で実行されているすべてのプロセス リソースを表す Process 型の配列。An array of type Process that represents all the process resources running on the specified computer.

例外

machineName パラメーターの構文が正しくありません。The machineName parameter syntax is invalid. 長さがゼロ (0) の可能性があります。It might have length zero (0).

machineName パラメーターが null です。The machineName parameter is null.

リモート コンピューターに対してこの操作を実行することは、オペレーティング システム プラットフォームでサポートされていません。The operating system platform does not support this operation on remote computers.

プロセス情報を取得するために使用するパフォーマンス カウンター API へのアクセスに問題があります。There are problems accessing the performance counter API's used to get process information. この例外は、Windows NT、Windows 2000、および Windows XP に固有のものです。This exception is specific to Windows NT, Windows 2000, and Windows XP.

基になるシステム API にアクセスしようとして、問題が発生しました。A problem occurred accessing an underlying system API.

次の例では、現在のプロセス、ローカルコンピューター上で実行されているプロセス、ローカルコンピューター上で実行されているメモ帳のすべてのインスタンス、およびローカルコンピューター上の特定のプロセスの情報を取得します。The following example retrieves information of the current process, processes running on the local computer, all instances of Notepad running on the local computer, and a specific process on the local computer. 次に、リモートコンピューター上の同じプロセスの情報を取得します。It then retrieves information for the same processes on a remote computer.

#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 processes running on the local computer.
   array<Process^>^localAll = Process::GetProcesses();

   // Get all instances of Notepad running on the local computer.
   // This will return an empty array if notepad isn't running.
   array<Process^>^localByName = Process::GetProcessesByName("notepad");

   // Get a process on the local computer, using the process id.
   // This will throw an exception if there is no such process.
   Process^ localById = Process::GetProcessById(1234);


   // Get processes running on a remote computer. Note that this
   // and all the following calls will timeout and throw an exception
   // if "myComputer" and 169.0.0.0 do not exist on your local network.

   // Get all processes on a remote computer.
   array<Process^>^remoteAll = Process::GetProcesses("myComputer");

   // Get all instances of Notepad running on the specific computer, using machine name.
   array<Process^>^remoteByName = Process::GetProcessesByName( "notepad", "myComputer" );
   
   // Get all instances of Notepad running on the specific computer, using IP address.
   array<Process^>^ipByName = Process::GetProcessesByName( "notepad", "169.0.0.0" );
   
   // Get a process on a remote computer, using the process id and machine name.
   Process^ remoteById = Process::GetProcessById( 2345, "myComputer" );
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        void BindToRunningProcesses()
        {
            // Get the current process.
            Process currentProcess = Process.GetCurrentProcess();

            // Get all processes running on the local computer.
            Process[] localAll = Process.GetProcesses();

            // Get all instances of Notepad running on the local computer.
            // This will return an empty array if notepad isn't running.
            Process[] localByName = Process.GetProcessesByName("notepad");

            // Get a process on the local computer, using the process id.
            // This will throw an exception if there is no such process.
            Process localById = Process.GetProcessById(1234);

            // Get processes running on a remote computer. Note that this
            // and all the following calls will timeout and throw an exception
            // if "myComputer" and 169.0.0.0 do not exist on your local network.

            // Get all processes on a remote computer.
            Process[] remoteAll = Process.GetProcesses("myComputer");

            // Get all instances of Notepad running on the specific computer, using machine name.
            Process[] remoteByName = Process.GetProcessesByName("notepad", "myComputer");

            // Get all instances of Notepad running on the specific computer, using IP address.
            Process[] ipByName = Process.GetProcessesByName("notepad", "169.0.0.0");

            // Get a process on a remote computer, using the process id and machine name.
            Process remoteById = Process.GetProcessById(2345, "myComputer");
        }

        static void Main()
        {
            MyProcess myProcess = new MyProcess();
            myProcess.BindToRunningProcesses();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Sub BindToRunningProcesses()
            ' Get the current process. You can use currentProcess from this point
            ' to access various properties and call methods to control the process.
            Dim currentProcess As Process = Process.GetCurrentProcess()

            ' Get all processes running on the local computer.
            Dim localAll As Process() = Process.GetProcesses()

            ' Get all instances of Notepad running on the local computer.
            ' This will return an empty array if notepad isn't running.
            Dim localByName As Process() = Process.GetProcessesByName("notepad")

            ' Get a process on the local computer, using the process id.
            ' This will throw an exception if there is no such process.
            Dim localById As Process = Process.GetProcessById(1234)


            ' Get processes running on a remote computer. Note that this
            ' and all the following calls will timeout and throw an exception
            ' if "myComputer" and 169.0.0.0 do not exist on your local network.

            ' Get all processes on a remote computer.
            Dim remoteAll As Process() = Process.GetProcesses("myComputer")

            ' Get all instances of Notepad running on the specific computer, using machine name.
            Dim remoteByName As Process() = Process.GetProcessesByName("notepad", "myComputer")

            ' Get all instances of Notepad running on the specific computer, using IP address.
            Dim ipByName As Process() = Process.GetProcessesByName("notepad", "169.0.0.0")

            ' Get a process on a remote computer, using the process id and machine name.
            Dim remoteById As Process = Process.GetProcessById(2345, "myComputer")
        End Sub

        Shared Sub Main()
            Dim myProcess As New MyProcess()
            myProcess.BindToRunningProcesses()
        End Sub

    End Class

End Namespace 'MyProcessSample

注釈

このメソッドを使用して、新しい Process コンポーネントの配列を作成し、指定した (通常はリモート) コンピューター上のすべてのプロセスリソースに関連付けます。Use this method to create an array of new Process components and associate them with all the process resources on the specified (usually remote) computer. プロセスリソースは、ローカルコンピューターに既に存在している必要があります。 GetProcesses はシステムリソースを作成せず、リソースをアプリケーションによって生成される Process コンポーネントに関連付けます。The process resources must already exist on the local computer, because GetProcesses does not create system resources but rather associates resources with application-generated Process components. オペレーティングシステム自体がバックグラウンドプロセスを実行しているため、この配列は空になりません。Because the operating system itself is running background processes, this array is never empty.

コンピューター上で実行されているすべてのプロセスを取得しない場合は、GetProcessById または GetProcessesByName 方法を使用して、その番号を制限できます。If you do not want to retrieve all the processes running on the computer, you can restrict their number by using the GetProcessById or GetProcessesByName method. GetProcessById は、メソッドに渡すプロセス識別子によってシステムで識別されるプロセスに関連付けられた Process コンポーネントを作成します。GetProcessById creates a Process component that is associated with the process identified on the system by the process identifier that you pass to the method. GetProcessesByName は、メソッドに渡す実行可能ファイルを、関連付けられたプロセスリソースが共有する Process コンポーネントの配列を作成します。GetProcessesByName creates an array of Process components whose associated process resources share the executable file you pass to the method.

GetProcesses メソッドのこのオーバーロードは、通常、ネットワーク上のリモートコンピューター上で実行されているプロセスリソースの一覧を取得するために使用されますが、"." を渡すことによってローカルコンピューターを指定することもできます。This overload of the GetProcesses method is generally used to retrieve the list of process resources running on a remote computer on the network, but you can specify the local computer by passing ".".

注意

サービスホストプロセス (svchost.exe) の同じインスタンス内に複数の Windows サービスを読み込むことができます。Multiple Windows services can be loaded within the same instance of the Service Host process (svchost.exe). GetProcesses は、これらの個々のサービスを識別しません。詳細については、「GetServices」を参照してください。GetProcesses does not identify those individual services; for that, see GetServices.

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼の場合。for full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。This member cannot be used by partially trusted code.

こちらもご覧ください

GetProcesses()

ローカル コンピューター上の各プロセス リソースごとに新しい Process コンポーネントを作成します。Creates a new Process component for each process resource on the local computer.

public:
 static cli::array <System::Diagnostics::Process ^> ^ GetProcesses();
public static System.Diagnostics.Process[] GetProcesses ();
static member GetProcesses : unit -> System.Diagnostics.Process[]
Public Shared Function GetProcesses () As Process()

戻り値

ローカル コンピューター上で実行されているすべてのプロセス リソースを表す Process 型の配列。An array of type Process that represents all the process resources running on the local computer.

次の例では、現在のプロセス、ローカルコンピューター上で実行されているプロセス、ローカルコンピューター上で実行されているメモ帳のすべてのインスタンス、およびローカルコンピューター上の特定のプロセスの情報を取得します。The following example retrieves information of the current process, processes running on the local computer, all instances of Notepad running on the local computer, and a specific process on the local computer. 次に、リモートコンピューター上の同じプロセスの情報を取得します。It then retrieves information for the same processes on a remote computer.

#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 processes running on the local computer.
   array<Process^>^localAll = Process::GetProcesses();

   // Get all instances of Notepad running on the local computer.
   // This will return an empty array if notepad isn't running.
   array<Process^>^localByName = Process::GetProcessesByName("notepad");

   // Get a process on the local computer, using the process id.
   // This will throw an exception if there is no such process.
   Process^ localById = Process::GetProcessById(1234);


   // Get processes running on a remote computer. Note that this
   // and all the following calls will timeout and throw an exception
   // if "myComputer" and 169.0.0.0 do not exist on your local network.

   // Get all processes on a remote computer.
   array<Process^>^remoteAll = Process::GetProcesses("myComputer");

   // Get all instances of Notepad running on the specific computer, using machine name.
   array<Process^>^remoteByName = Process::GetProcessesByName( "notepad", "myComputer" );
   
   // Get all instances of Notepad running on the specific computer, using IP address.
   array<Process^>^ipByName = Process::GetProcessesByName( "notepad", "169.0.0.0" );
   
   // Get a process on a remote computer, using the process id and machine name.
   Process^ remoteById = Process::GetProcessById( 2345, "myComputer" );
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        void BindToRunningProcesses()
        {
            // Get the current process.
            Process currentProcess = Process.GetCurrentProcess();

            // Get all processes running on the local computer.
            Process[] localAll = Process.GetProcesses();

            // Get all instances of Notepad running on the local computer.
            // This will return an empty array if notepad isn't running.
            Process[] localByName = Process.GetProcessesByName("notepad");

            // Get a process on the local computer, using the process id.
            // This will throw an exception if there is no such process.
            Process localById = Process.GetProcessById(1234);

            // Get processes running on a remote computer. Note that this
            // and all the following calls will timeout and throw an exception
            // if "myComputer" and 169.0.0.0 do not exist on your local network.

            // Get all processes on a remote computer.
            Process[] remoteAll = Process.GetProcesses("myComputer");

            // Get all instances of Notepad running on the specific computer, using machine name.
            Process[] remoteByName = Process.GetProcessesByName("notepad", "myComputer");

            // Get all instances of Notepad running on the specific computer, using IP address.
            Process[] ipByName = Process.GetProcessesByName("notepad", "169.0.0.0");

            // Get a process on a remote computer, using the process id and machine name.
            Process remoteById = Process.GetProcessById(2345, "myComputer");
        }

        static void Main()
        {
            MyProcess myProcess = new MyProcess();
            myProcess.BindToRunningProcesses();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Sub BindToRunningProcesses()
            ' Get the current process. You can use currentProcess from this point
            ' to access various properties and call methods to control the process.
            Dim currentProcess As Process = Process.GetCurrentProcess()

            ' Get all processes running on the local computer.
            Dim localAll As Process() = Process.GetProcesses()

            ' Get all instances of Notepad running on the local computer.
            ' This will return an empty array if notepad isn't running.
            Dim localByName As Process() = Process.GetProcessesByName("notepad")

            ' Get a process on the local computer, using the process id.
            ' This will throw an exception if there is no such process.
            Dim localById As Process = Process.GetProcessById(1234)


            ' Get processes running on a remote computer. Note that this
            ' and all the following calls will timeout and throw an exception
            ' if "myComputer" and 169.0.0.0 do not exist on your local network.

            ' Get all processes on a remote computer.
            Dim remoteAll As Process() = Process.GetProcesses("myComputer")

            ' Get all instances of Notepad running on the specific computer, using machine name.
            Dim remoteByName As Process() = Process.GetProcessesByName("notepad", "myComputer")

            ' Get all instances of Notepad running on the specific computer, using IP address.
            Dim ipByName As Process() = Process.GetProcessesByName("notepad", "169.0.0.0")

            ' Get a process on a remote computer, using the process id and machine name.
            Dim remoteById As Process = Process.GetProcessById(2345, "myComputer")
        End Sub

        Shared Sub Main()
            Dim myProcess As New MyProcess()
            myProcess.BindToRunningProcesses()
        End Sub

    End Class

End Namespace 'MyProcessSample

注釈

このメソッドを使用して、新しい Process コンポーネントの配列を作成し、ローカルコンピューター上のすべてのプロセスリソースに関連付けます。Use this method to create an array of new Process components and associate them with all the process resources on the local computer. プロセスリソースは、ローカルコンピューターに既に存在している必要があります。 GetProcesses はシステムリソースを作成せず、リソースをアプリケーションによって生成される Process コンポーネントに関連付けます。The process resources must already exist on the local computer, because GetProcesses does not create system resources but rather associates resources with application-generated Process components. オペレーティングシステム自体がバックグラウンドプロセスを実行しているため、この配列は空になりません。Because the operating system itself is running background processes, this array is never empty.

コンピューター上で実行されているすべてのプロセスを取得しない場合は、GetProcessById または GetProcessesByName 方法を使用して、その番号を制限できます。If you do not want to retrieve all the processes running on the computer, you can restrict their number by using the GetProcessById or GetProcessesByName method. GetProcessById は、メソッドに渡すプロセス識別子によってシステムで識別されるプロセスに関連付けられた Process コンポーネントを作成します。GetProcessById creates a Process component that is associated with the process identified on the system by the process identifier that you pass to the method. GetProcessesByName は、メソッドに渡す実行可能ファイルを、関連付けられたプロセスリソースが共有する Process コンポーネントの配列を作成します。GetProcessesByName creates an array of Process components whose associated process resources share the executable file you pass to the method.

注意

サービスホストプロセス (svchost.exe) の同じインスタンス内に複数の Windows サービスを読み込むことができます。Multiple Windows services can be loaded within the same instance of the Service Host process (svchost.exe). GetProcesses は、これらの個々のサービスを識別しません。詳細については、「GetServices」を参照してください。GetProcesses does not identify those individual services; for that, see GetServices.

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼の場合。for full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。This member cannot be used by partially trusted code.

こちらもご覧ください

適用対象