Process.GetProcessesByName Método

Definição

Cria uma matriz de novos componentes Process e associa-os aos recursos de processo existentes que compartilham o nome do processo especificado.

Sobrecargas

GetProcessesByName(String, String)

Cria uma matriz de novos componentes Process e os associa a todos os recursos do processo em um computador remoto que compartilham o nome do processo especificado.

GetProcessesByName(String)

Cria uma matriz de novos componentes Process e os associa a todos os recursos do processo no computador local que compartilham o nome do processo especificado.

GetProcessesByName(String, String)

Origem:
Process.Linux.cs
Origem:
Process.Linux.cs
Origem:
Process.Linux.cs

Cria uma matriz de novos componentes Process e os associa a todos os recursos do processo em um computador remoto que compartilham o nome do processo especificado.

public:
 static cli::array <System::Diagnostics::Process ^> ^ GetProcessesByName(System::String ^ processName, System::String ^ machineName);
public static System.Diagnostics.Process[] GetProcessesByName (string? processName, string machineName);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process[] GetProcessesByName (string? processName, string machineName);
public static System.Diagnostics.Process[] GetProcessesByName (string processName, string machineName);
static member GetProcessesByName : string * string -> System.Diagnostics.Process[]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member GetProcessesByName : string * string -> System.Diagnostics.Process[]
Public Shared Function GetProcessesByName (processName As String, machineName As String) As Process()

Parâmetros

processName
String

O nome amigável do processo.

machineName
String

O nome de um computador na rede.

Retornos

Uma matriz do tipo Process que representa os recursos do processo que executam o aplicativo ou arquivo especificado.

Atributos

Exceções

A sintaxe do parâmetro machineName é inválida. Ele pode ter comprimento zero (0).

O parâmetro machineName é null.

A plataforma de sistema operacional não dá suporte a esta operação em computadores remotos.

A tentativa de conexão para machineName falhou.

- ou -

Há problemas ao acessar as APIs de contador de desempenho usadas para obter informações do processo. Essa exceção é específica ao Windows NT, Windows 2000 e Windows XP.

Ocorreu um problema ao acessar uma API do sistema subjacente.

Exemplos

O exemplo a seguir recupera informações do processo atual, processos em execução no computador local, todas as instâncias do Bloco de Notas em execução no computador local e um processo específico no computador local. Em seguida, ele recupera informações para os mesmos processos em um computador remoto.

#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

Comentários

Use esse método para criar uma matriz de novos Process componentes e associá-los a todos os recursos de processo que estão executando o mesmo arquivo executável no computador especificado. Os recursos de processo já devem existir no computador, pois GetProcessesByName não cria recursos do sistema, mas os associa a componentes gerados pelo Process aplicativo. Um processName pode ser especificado para um arquivo executável que não está em execução no momento no computador local, portanto, a matriz retornada pelo método pode estar vazia.

O nome do processo é um nome amigável para o processo, como Outlook, que não inclui a extensão .exe ou o caminho. GetProcessesByName é útil para obter e manipular todos os processos associados ao mesmo arquivo executável. Por exemplo, você pode passar um nome de arquivo executável como o processName parâmetro para desligar todas as instâncias em execução desse arquivo executável.

Embora um processo Id seja exclusivo para um único recurso de processo no sistema, vários processos no computador local podem estar executando o aplicativo especificado pelo processName parâmetro . Portanto, GetProcessById retorna no máximo um processo, mas GetProcessesByName retorna uma matriz que contém todos os processos associados. Se você precisar manipular o processo usando chamadas à API padrão, poderá consultar cada um desses processos em busca de seu identificador. Você não pode acessar os recursos do processo apenas por meio do nome do processo, mas, depois de recuperar uma matriz de Process componentes que foram associados aos recursos do processo, você pode iniciar, encerrar e manipular os recursos do sistema.

Você pode usar essa sobrecarga para obter processos no computador local, bem como em um computador remoto. Use "." para especificar o computador local. Existe outra sobrecarga que usa o computador local por padrão.

Você pode acessar processos em computadores remotos apenas para exibir informações, como estatísticas, sobre os processos. Você não pode fechar, terminar (usando Kill) ou iniciar processos em computadores remotos.

Confira também

Aplica-se a

GetProcessesByName(String)

Origem:
Process.cs
Origem:
Process.cs
Origem:
Process.cs

Cria uma matriz de novos componentes Process e os associa a todos os recursos do processo no computador local que compartilham o nome do processo especificado.

public:
 static cli::array <System::Diagnostics::Process ^> ^ GetProcessesByName(System::String ^ processName);
public static System.Diagnostics.Process[] GetProcessesByName (string? processName);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process[] GetProcessesByName (string? processName);
public static System.Diagnostics.Process[] GetProcessesByName (string processName);
static member GetProcessesByName : string -> System.Diagnostics.Process[]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member GetProcessesByName : string -> System.Diagnostics.Process[]
Public Shared Function GetProcessesByName (processName As String) As Process()

Parâmetros

processName
String

O nome amigável do processo.

Retornos

Uma matriz do tipo Process que representa os recursos do processo que executam o aplicativo ou arquivo especificado.

Atributos

Exceções

Há problemas ao acessar as APIs de contador de desempenho usadas para obter informações do processo. Essa exceção é específica ao Windows NT, Windows 2000 e Windows XP.

Exemplos

O exemplo a seguir recupera informações do processo atual, processos em execução no computador local, todas as instâncias do Bloco de Notas em execução no computador local e um processo específico no computador local. Em seguida, ele recupera informações para os mesmos processos em um computador remoto.

#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

Comentários

Use esse método para criar uma matriz de novos Process componentes e associá-los a todos os recursos de processo que estão executando o mesmo arquivo executável no computador local. Os recursos de processo já devem existir no computador, pois GetProcessesByName não cria recursos do sistema, mas os associa a componentes gerados pelo Process aplicativo. Um processName pode ser especificado para um arquivo executável que não está em execução no momento no computador local, portanto, a matriz retornada pelo método pode estar vazia.

O nome do processo é um nome amigável para o processo, como Outlook, que não inclui a extensão .exe ou o caminho. GetProcessesByName é útil para obter e manipular todos os processos associados ao mesmo arquivo executável. Por exemplo, você pode passar um nome de arquivo executável como o processName parâmetro para desligar todas as instâncias em execução desse arquivo executável.

Embora um processo Id seja exclusivo para um único recurso de processo no sistema, vários processos no computador local podem estar executando o aplicativo especificado pelo processName parâmetro . Portanto, GetProcessById retorna no máximo um processo, mas GetProcessesByName retorna uma matriz que contém todos os processos associados. Se você precisar manipular o processo usando chamadas à API padrão, poderá consultar cada um desses processos em busca de seu identificador. Você não pode acessar os recursos do processo apenas por meio do nome do processo, mas, depois de recuperar uma matriz de Process componentes que foram associados aos recursos do processo, você pode iniciar, encerrar e manipular os recursos do sistema.

Confira também

Aplica-se a