Process.GetProcessesByName Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria um conjunto de novos Process componentes e associa-os aos recursos de processo existentes que partilham todos o nome especificado do processo.
Sobrecargas
| Name | Description |
|---|---|
| GetProcessesByName(String, String) |
Cria um conjunto de novos Process componentes e associa-os a todos os recursos de processo num computador remoto que partilham o nome de processo especificado. |
| GetProcessesByName(String) |
Cria um conjunto de novos Process componentes e associa-os a todos os recursos de processo no computador local que partilham o nome do processo especificado. |
GetProcessesByName(String, String)
Cria um conjunto de novos Process componentes e associa-os a todos os recursos de processo num computador remoto que partilham o nome de 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);
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.
Devoluções
Um array de tipos Process que representa os recursos do processo que executam a aplicação ou ficheiro especificado.
Exceções
A sintaxe dos machineName parâmetros é inválida. Pode ter comprimento zero (0).
O machineName parâmetro é null.
A plataforma do sistema operativo não suporta esta operação em computadores remotos.
A tentativa de ligação falhou machineName .
-ou-
Existem problemas no acesso às APIs de contador de desempenho usadas para obter informação de processos. Esta exceção é específica para Windows NT, Windows 2000 e Windows XP.
Surgiu um problema ao aceder a uma API do sistema subjacente.
Exemplos
O exemplo seguinte recupera informações do processo atual, dos processos a correr no computador local, de todas as instâncias do Bloco de Notas a correr no computador local e de um processo específico no computador local. Depois, recolhe informações para os mesmos processos num computador remoto.
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();
}
}
}
open System.Diagnostics
// Get the current process.
let currentProcess = Process.GetCurrentProcess()
// Get all processes running on the local computer.
let localAll = Process.GetProcesses()
// Get all instances of Notepad running on the local computer.
// This will return an empty array if notepad isn't running.
let 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.
let 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.
let remoteAll = Process.GetProcesses "myComputer"
// Get all instances of Notepad running on the specific computer, using machine name.
let remoteByName = Process.GetProcessesByName("notepad", "myComputer")
// Get all instances of Notepad running on the specific computer, using IP address.
let ipByName = Process.GetProcessesByName("notepad", "169.0.0.0")
// Get a process on a remote computer, using the process id and machine name.
let remoteById = Process.GetProcessById(2345, "myComputer")
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
Observações
Use este método para criar um conjunto de novos Process componentes e associá-los a todos os recursos do processo que estejam a executar o mesmo ficheiro executável no computador especificado. Os recursos do processo devem já existir no computador, pois GetProcessesByName não cria recursos do sistema, mas sim associa-os a componentes gerados Process pela aplicação. A processName pode ser especificado para um ficheiro executável que não está atualmente a correr no computador local, pelo que o array que o método devolve pode estar vazio.
O nome do processo é um nome amigável para o processo, como Outlook, que não inclui a extensão .exe nem o caminho.
GetProcessesByName é útil para obter e manipular todos os processos associados ao mesmo ficheiro executável. Por exemplo, pode passar um nome de ficheiro executável como processName parâmetro, para desligar todas as instâncias em execução desse ficheiro executável.
Embora um processo Id seja único para um único recurso de processo no sistema, múltiplos processos no computador local podem estar a executar a aplicação especificada pelo processName parâmetro. Portanto, GetProcessById devolve no máximo um processo, mas GetProcessesByName devolve um array contendo todos os processos associados. Se precisar de manipular o processo usando chamadas de API padrão, pode consultar cada um destes processos para obter o seu identificador. Não pode aceder aos recursos do processo apenas pelo nome do processo, mas, uma vez recuperado um conjunto de Process componentes associados aos recursos do processo, pode iniciar, terminar e manipular os recursos do sistema.
Pode usar esta sobrecarga para obter processos tanto no computador local como num computador remoto. Use "." para especificar o computador local. Existe outra sobrecarga que utiliza o computador local por defeito.
Pode aceder a processos em computadores remotos apenas para visualizar informações, como estatísticas, sobre os processos. Não pode fechar, terminar (usando Kill), ou iniciar processos em computadores remotos.
Ver também
Aplica-se a
GetProcessesByName(String)
Cria um conjunto de novos Process componentes e associa-os a todos os recursos de processo no computador local que partilham o nome do processo especificado.
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
O nome amigável do processo.
Devoluções
Um array de tipos Process que representa os recursos do processo que executam a aplicação ou ficheiro especificado.
Exceções
Existem problemas no acesso às APIs de contador de desempenho usadas para obter informação de processos. Esta exceção é específica para Windows NT, Windows 2000 e Windows XP.
Exemplos
O exemplo seguinte recupera informações do processo atual, dos processos a correr no computador local, de todas as instâncias do Bloco de Notas a correr no computador local e de um processo específico no computador local. Depois, recolhe informações para os mesmos processos num computador remoto.
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();
}
}
}
open System.Diagnostics
// Get the current process.
let currentProcess = Process.GetCurrentProcess()
// Get all processes running on the local computer.
let localAll = Process.GetProcesses()
// Get all instances of Notepad running on the local computer.
// This will return an empty array if notepad isn't running.
let 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.
let 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.
let remoteAll = Process.GetProcesses "myComputer"
// Get all instances of Notepad running on the specific computer, using machine name.
let remoteByName = Process.GetProcessesByName("notepad", "myComputer")
// Get all instances of Notepad running on the specific computer, using IP address.
let ipByName = Process.GetProcessesByName("notepad", "169.0.0.0")
// Get a process on a remote computer, using the process id and machine name.
let remoteById = Process.GetProcessById(2345, "myComputer")
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
Observações
Use este método para criar um conjunto de novos Process componentes e associá-los a todos os recursos do processo que estejam a executar o mesmo ficheiro executável no computador local. Os recursos do processo devem já existir no computador, pois GetProcessesByName não cria recursos do sistema, mas sim associa-os a componentes gerados Process pela aplicação. A processName pode ser especificado para um ficheiro executável que não está atualmente a correr no computador local, pelo que o array que o método devolve pode estar vazio.
O nome do processo é um nome amigável para o processo, como Outlook, que não inclui a extensão .exe nem o caminho.
GetProcessesByName é útil para obter e manipular todos os processos associados ao mesmo ficheiro executável. Por exemplo, pode passar um nome de ficheiro executável como processName parâmetro, para desligar todas as instâncias em execução desse ficheiro executável.
Embora um processo Id seja único para um único recurso de processo no sistema, múltiplos processos no computador local podem estar a executar a aplicação especificada pelo processName parâmetro. Portanto, GetProcessById devolve no máximo um processo, mas GetProcessesByName devolve um array contendo todos os processos associados. Se precisar de manipular o processo usando chamadas de API padrão, pode consultar cada um destes processos para obter o seu identificador. Não pode aceder aos recursos do processo apenas pelo nome do processo, mas, uma vez recuperado um conjunto de Process componentes associados aos recursos do processo, pode iniciar, terminar e manipular os recursos do sistema.