Process.GetProcessesByName Process.GetProcessesByName Process.GetProcessesByName Process.GetProcessesByName Method

定義

新しい Process コンポーネントの配列を作成し、指定したプロセス名を共有する既存のプロセス リソースに関連付けます。Creates an array of new Process components and associates them with the existing process resources that all share the specified process name.

オーバーロード

GetProcessesByName(String) GetProcessesByName(String) GetProcessesByName(String) GetProcessesByName(String)

新しい Process コンポーネントの配列を作成し、指定したプロセス名を共有するローカル コンピューター上のすべてのプロセス リソースに関連付けます。Creates an array of new Process components and associates them with all the process resources on the local computer that share the specified process name.

GetProcessesByName(String, String) GetProcessesByName(String, String) GetProcessesByName(String, String) GetProcessesByName(String, String)

新しい Process コンポーネントの配列を作成し、指定したプロセス名を共有するリモート コンピューター上のすべてのプロセス リソースに関連付けます。Creates an array of new Process components and associates them with all the process resources on a remote computer that share the specified process name.

GetProcessesByName(String) GetProcessesByName(String) GetProcessesByName(String) GetProcessesByName(String)

新しい Process コンポーネントの配列を作成し、指定したプロセス名を共有するローカル コンピューター上のすべてのプロセス リソースに関連付けます。Creates an array of new Process components and associates them with all the process resources on the local computer that share the specified process name.

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

パラメーター

processName
String String String String

プロセスのフレンドリ名。The friendly name of the process.

戻り値

指定したアプリケーションまたはファイルを実行しているプロセス リソースを表す Process 型の配列。An array of type Process that represents the process resources running the specified application or file.

例外

プロセス情報を取得するために使用するパフォーマンス カウンター 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.

次の例では、現在のプロセス、ローカルコンピューター上で実行されているプロセス、ローカルコンピューター上で実行されているメモ帳のすべてのインスタンス、およびローカルコンピューター上の特定のプロセスの情報を取得します。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 that are running the same executable file on the local computer. プロセスリソースはコンピューターに既に存在しているGetProcessesByName必要があります。では、システムリソースは作成さProcessれず、アプリケーションによって生成されるコンポーネントに関連付けられるためです。The process resources must already exist on the computer, because GetProcessesByName does not create system resources but rather associates them with application-generated Process components. processName 、ローカルコンピューターで現在実行されていない実行可能ファイルに対して指定できます。そのため、メソッドが返す配列は空にすることができます。A processName can be specified for an executable file that is not currently running on the local computer, so the array the method returns can be empty.

プロセス名は、Outlook などのプロセスのフレンドリ名です。この名前には、.exe 拡張子やパスは含まれません。The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path. GetProcessesByNameは、同じ実行可能ファイルに関連付けられているすべてのプロセスを取得して操作する場合に役立ちます。GetProcessesByName is helpful for getting and manipulating all the processes that are associated with the same executable file. たとえば、実行可能ファイルの実行中のすべてのインスタンスprocessNameをシャットダウンするために、実行可能ファイル名をパラメーターとして渡すことができます。For example, you can pass an executable file name as the processName parameter, in order to shut down all the running instances of that executable file.

プロセスIdはシステム上の1つのプロセスリソースに対して一意ですが、ローカルコンピューター上の複数のプロセスで、 processNameパラメーターによって指定されたアプリケーションを実行できます。Although a process Id is unique to a single process resource on the system, multiple processes on the local computer can be running the application specified by the processName parameter. したがってGetProcessById 、は、最大で1つGetProcessesByNameのプロセスを返しますが、関連付けられているすべてのプロセスを含む配列を返します。Therefore, GetProcessById returns one process at most, but GetProcessesByName returns an array containing all the associated processes. 標準 API 呼び出しを使用してプロセスを操作する必要がある場合は、その識別子に対してこれらの各プロセスを順番にクエリできます。If you need to manipulate the process using standard API calls, you can query each of these processes in turn for its identifier. プロセスリソースにはプロセス名だけではアクセスできませんが、プロセスリソースに関連Process付けられているコンポーネントの配列を取得した後は、システムリソースを開始、終了、または操作することができます。You cannot access process resources through the process name alone but, once you have retrieved an array of Process components that have been associated with the process resources, you can start, terminate, and otherwise manipulate the system resources.

セキュリティ

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

こちらもご覧ください

GetProcessesByName(String, String) GetProcessesByName(String, String) GetProcessesByName(String, String) GetProcessesByName(String, String)

新しい Process コンポーネントの配列を作成し、指定したプロセス名を共有するリモート コンピューター上のすべてのプロセス リソースに関連付けます。Creates an array of new Process components and associates them with all the process resources on a remote computer that share the specified process name.

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

パラメーター

processName
String String String String

プロセスのフレンドリ名。The friendly name of the process.

machineName
String String String String

ネットワーク上のコンピューターの名前。The name of a computer on the network.

戻り値

指定したアプリケーションまたはファイルを実行しているプロセス リソースを表す Process 型の配列。An array of type Process that represents the process resources running the specified application or file.

例外

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.

machineName に接続する試みが失敗しました。The attempt to connect to machineName has failed.

または-or- プロセス情報を取得するために使用するパフォーマンス カウンター 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 that are running the same executable file on the specified computer. プロセスリソースはコンピューターに既に存在しているGetProcessesByName必要があります。では、システムリソースは作成さProcessれず、アプリケーションによって生成されるコンポーネントに関連付けられるためです。The process resources must already exist on the computer, because GetProcessesByName does not create system resources but rather associates them with application-generated Process components. processName 、ローカルコンピューターで現在実行されていない実行可能ファイルに対して指定できます。そのため、メソッドが返す配列は空にすることができます。A processName can be specified for an executable file that is not currently running on the local computer, so the array the method returns can be empty.

プロセス名は、Outlook などのプロセスのフレンドリ名です。この名前には、.exe 拡張子やパスは含まれません。The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path. GetProcessesByNameは、同じ実行可能ファイルに関連付けられているすべてのプロセスを取得して操作する場合に役立ちます。GetProcessesByName is helpful for getting and manipulating all the processes that are associated with the same executable file. たとえば、実行可能ファイルの実行中のすべてのインスタンスprocessNameをシャットダウンするために、実行可能ファイル名をパラメーターとして渡すことができます。For example, you can pass an executable file name as the processName parameter, in order to shut down all the running instances of that executable file.

プロセスIdはシステム上の1つのプロセスリソースに対して一意ですが、ローカルコンピューター上の複数のプロセスで、 processNameパラメーターによって指定されたアプリケーションを実行できます。Although a process Id is unique to a single process resource on the system, multiple processes on the local computer can be running the application specified by the processName parameter. したがってGetProcessById 、は、最大で1つGetProcessesByNameのプロセスを返しますが、関連付けられているすべてのプロセスを含む配列を返します。Therefore, GetProcessById returns one process at most, but GetProcessesByName returns an array containing all the associated processes. 標準 API 呼び出しを使用してプロセスを操作する必要がある場合は、その識別子に対してこれらの各プロセスを順番にクエリできます。If you need to manipulate the process using standard API calls, you can query each of these processes in turn for its identifier. プロセスリソースにはプロセス名だけではアクセスできませんが、プロセスリソースに関連Process付けられているコンポーネントの配列を取得した後は、システムリソースを開始、終了、または操作することができます。You cannot access process resources through the process name alone but, once you have retrieved an array of Process components that have been associated with the process resources, you can start, terminate, and otherwise manipulate the system resources.

このオーバーロードを使用して、ローカルコンピューターおよびリモートコンピューター上のプロセスを取得できます。You can use this overload to get processes on the local computer as well as on a remote computer. "." を使用してローカルコンピューターを指定します。Use "." to specify the local computer. 既定では、ローカルコンピューターを使用する別のオーバーロードが存在します。Another overload exists that uses the local computer by default.

リモートコンピューター上のプロセスには、プロセスに関する統計情報などの情報を表示するためだけにアクセスできます。You can access processes on remote computers only to view information, such as statistics, about the processes. リモートコンピューターでプロセスを終了、 Kill終了 (使用)、または開始することはできません。You cannot close, terminate (using Kill), or start processes on remote computers.

セキュリティ

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

SecurityPermission
アンマネージコードを呼び出す。to call unmanaged code. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

こちらもご覧ください

適用対象