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

Definição

Cria uma matriz de novos componentes Process e associa-os aos recursos de processo existentes que compartilham o nome do processo especificado.Creates an array of new Process components and associates them with the existing process resources that all share the specified process name.

Sobrecargas

GetProcessesByName(String) GetProcessesByName(String) GetProcessesByName(String) 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.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)

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.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)

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.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()

Parâmetros

processName
String String String String

O nome amigável do processo.The friendly name of the process.

Retornos

Uma matriz do tipo Process que representa os recursos do processo que executam o aplicativo ou arquivo especificado.An array of type Process that represents the process resources running the specified application or file.

Exceções

Há problemas ao acessar as APIs de contador de desempenho usadas para obter informações do processo.There are problems accessing the performance counter API's used to get process information. Essa exceção é específica ao Windows NT, Windows 2000 e Windows XP.This exception is specific to Windows NT, Windows 2000, and 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.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. Ele então recupera informações para os mesmos processos em um computador remoto.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
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 'BindToRunningProcesses

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

    End Class 'MyProcess

End Namespace 'MyProcessSample

Comentários

Use esse método para criar uma matriz de novos Process componentes e associá-las a todos os recursos de processo que estiver executando o mesmo arquivo executável no computador local.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. Os recursos do processo já devem existir no computador, porque GetProcessesByName não cria recursos do sistema, mas em vez disso, os associa gerados pelo aplicativo Process componentes.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. Um processName pode ser especificado para um arquivo executável que não está atualmente em execução no computador local, portanto, a matriz em que o método retorna pode ser vazia.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.

O nome do processo é um nome amigável para o processo, como Outlook, que não inclui a extensão .exe ou o caminho.The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path. GetProcessesByName é útil para obter e manipular todos os processos que estão associados com o mesmo arquivo executável.GetProcessesByName is helpful for getting and manipulating all the processes that are associated with the same executable file. 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.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.

Embora um processo Id é exclusivo a um recurso de um único processo do sistema, vários processos no computador local podem estar executando o aplicativo especificado pelo processName parâmetro.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. Portanto, GetProcessById retorna um processo no máximo, mas GetProcessesByName retorna uma matriz que contém todos os processos associados.Therefore, GetProcessById returns one process at most, but GetProcessesByName returns an array containing all the associated processes. Se você precisar manipular o processo usando chamadas à API standard, você pode consultar cada um desses processos por sua vez para seu identificador.If you need to manipulate the process using standard API calls, you can query each of these processes in turn for its identifier. Você não pode acessar os recursos de processo por meio de apenas o nome do processo, mas, depois de recuperar uma matriz de Process componentes que foram associados com os recursos do processo, você pode iniciar, encerrar e manipular os recursos do sistema.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.

Segurança

LinkDemand
para confiança total do chamador imediato.for full trust for the immediate caller. Este membro não pode ser usado pelo código parcialmente confiável.This member cannot be used by partially trusted code.

Veja também

GetProcessesByName(String, String) GetProcessesByName(String, String) GetProcessesByName(String, String) 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.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()

Parâmetros

processName
String String String String

O nome amigável do processo.The friendly name of the process.

machineName
String String String String

O nome de um computador na rede.The name of a computer on the network.

Retornos

Uma matriz do tipo Process que representa os recursos do processo que executam o aplicativo ou arquivo especificado.An array of type Process that represents the process resources running the specified application or file.

Exceções

A sintaxe do parâmetro machineName é inválida.The machineName parameter syntax is invalid. Ele pode ter comprimento zero (0).It might have length zero (0).

O parâmetro machineName é null.The machineName parameter is null.

A plataforma de sistema operacional não dá suporte a esta operação em computadores remotos.The operating system platform does not support this operation on remote computers.

A tentativa de conexão para machineName falhou.The attempt to connect to machineName has failed.

- ou --or- Há problemas ao acessar as APIs de contador de desempenho usadas para obter informações do processo.There are problems accessing the performance counter API's used to get process information. Essa exceção é específica ao Windows NT, Windows 2000 e Windows XP.This exception is specific to Windows NT, Windows 2000, and Windows XP.

Ocorreu um problema ao acessar uma API do sistema subjacente.A problem occurred accessing an underlying system API.

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.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. Ele então recupera informações para os mesmos processos em um computador remoto.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
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 'BindToRunningProcesses

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

    End Class 'MyProcess

End Namespace 'MyProcessSample

Comentários

Use esse método para criar uma matriz de novos Process componentes e associá-las a todos os recursos de processo que estiver executando o mesmo arquivo executável no computador especificado.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. Os recursos do processo já devem existir no computador, porque GetProcessesByName não cria recursos do sistema, mas em vez disso, os associa gerados pelo aplicativo Process componentes.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. Um processName pode ser especificado para um arquivo executável que não está atualmente em execução no computador local, portanto, a matriz em que o método retorna pode ser vazia.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.

O nome do processo é um nome amigável para o processo, como Outlook, que não inclui a extensão .exe ou o caminho.The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path. GetProcessesByName é útil para obter e manipular todos os processos que estão associados com o mesmo arquivo executável.GetProcessesByName is helpful for getting and manipulating all the processes that are associated with the same executable file. 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.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.

Embora um processo Id é exclusivo a um recurso de um único processo do sistema, vários processos no computador local podem estar executando o aplicativo especificado pelo processName parâmetro.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. Portanto, GetProcessById retorna um processo no máximo, mas GetProcessesByName retorna uma matriz que contém todos os processos associados.Therefore, GetProcessById returns one process at most, but GetProcessesByName returns an array containing all the associated processes. Se você precisar manipular o processo usando chamadas à API standard, você pode consultar cada um desses processos por sua vez para seu identificador.If you need to manipulate the process using standard API calls, you can query each of these processes in turn for its identifier. Você não pode acessar os recursos de processo por meio de apenas o nome do processo, mas, depois de recuperar uma matriz de Process componentes que foram associados com os recursos do processo, você pode iniciar, encerrar e manipular os recursos do sistema.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.

Você pode usar essa sobrecarga para obter os processos no computador local, bem como em um computador remoto.You can use this overload to get processes on the local computer as well as on a remote computer. Use "." para especificar o computador local.Use "." to specify the local computer. Outra sobrecarga existe que usa o computador local por padrão.Another overload exists that uses the local computer by default.

Você pode acessar os processos em computadores remotos somente para exibir informações, como estatísticas sobre os processos.You can access processes on remote computers only to view information, such as statistics, about the processes. Você não pode fechar, encerrar (usando Kill), ou inicie os processos em computadores remotos.You cannot close, terminate (using Kill), or start processes on remote computers.

Segurança

LinkDemand
para confiança total do chamador imediato.for full trust for the immediate caller. Este membro não pode ser usado pelo código parcialmente confiável.This member cannot be used by partially trusted code.

SecurityPermission
para chamar código não gerenciado.to call unmanaged code. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

Veja também

Aplica-se a