Process.GetProcessById Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um novo componente Process e associa-o ao recurso de processo existente que você especificar.
Sobrecargas
GetProcessById(Int32) |
Retorna um novo componente Process, tendo em conta o identificador de um processo no computador local. |
GetProcessById(Int32, String) |
Retorna um novo componente Process, dado um identificador de processo e o nome de um computador na rede. |
GetProcessById(Int32)
- Origem:
- Process.cs
- Origem:
- Process.cs
- Origem:
- Process.cs
Retorna um novo componente Process, tendo em conta o identificador de um processo no computador local.
public:
static System::Diagnostics::Process ^ GetProcessById(int processId);
public static System.Diagnostics.Process GetProcessById (int processId);
static member GetProcessById : int -> System.Diagnostics.Process
Public Shared Function GetProcessById (processId As Integer) As Process
Parâmetros
- processId
- Int32
O identificador exclusivo do sistema de um recurso de processo.
Retornos
Um componente Process associado ao recurso de processo local identificado pelo parâmetro processId
.
Exceções
O processo especificado pelo parâmetro processId
não está em execução. O identificador pode ter expirado.
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 um novo Process componente e associá-lo a um recurso de processo no computador local. O recurso de processo já deve existir no computador, pois GetProcessById(Int32) não cria um recurso do sistema, mas associa um recurso a um componente gerado pelo Process aplicativo. Um processo Id só pode ser recuperado para um processo que está em execução no computador. Depois que o processo for encerrado, GetProcessById(Int32) gerará uma exceção se você passar um identificador expirado.
Em qualquer computador específico, o identificador de um processo é exclusivo. GetProcessById(Int32) retorna um processo no máximo. Se você quiser obter todos os processos que executam um aplicativo específico, use GetProcessesByName(String). Se houver vários processos no computador que executa o aplicativo especificado, GetProcessesByName(String) retornará uma matriz que contém todos os processos associados. Você pode consultar cada um desses processos, por sua vez, para seu identificador. O identificador de processo pode ser exibido no Processes
painel do Gerenciador de Tarefas do Windows. A PID
coluna exibe o identificador de processo atribuído a um processo.
O processId
parâmetro é um Int32 (um inteiro com sinal de 32 bits), embora a API subjacente do Windows use um DWORD
(um inteiro sem sinal de 32 bits) para APIs semelhantes. Isso é por razões históricas.
Confira também
Aplica-se a
GetProcessById(Int32, String)
- Origem:
- Process.cs
- Origem:
- Process.cs
- Origem:
- Process.cs
Retorna um novo componente Process, dado um identificador de processo e o nome de um computador na rede.
public:
static System::Diagnostics::Process ^ GetProcessById(int processId, System::String ^ machineName);
public static System.Diagnostics.Process GetProcessById (int processId, string machineName);
static member GetProcessById : int * string -> System.Diagnostics.Process
Public Shared Function GetProcessById (processId As Integer, machineName As String) As Process
Parâmetros
- processId
- Int32
O identificador exclusivo do sistema de um recurso de processo.
- machineName
- String
O nome de um computador na rede.
Retornos
Um componente Process associado ao recurso de processo remoto identificado pelo parâmetro processId
.
Exceções
O processo especificado pelo parâmetro processId
não está em execução. O identificador pode ter expirado.
- ou -
A sintaxe do parâmetro machineName
é inválida. O nome pode ter tamanho zero (0).
O parâmetro machineName
é null
.
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 um novo Process componente e associá-lo a um recurso de processo em um computador remoto na rede. O recurso de processo já deve existir no computador especificado, pois GetProcessById(Int32, String) não cria um recurso do sistema, mas associa um recurso a um componente gerado pelo Process aplicativo. Um processo Id só pode ser recuperado para um processo que está em execução no computador. Depois que o processo for encerrado, GetProcessById(Int32, String) gerará uma exceção se você passar um identificador expirado.
Em qualquer computador específico, o identificador de um processo é exclusivo. GetProcessById(Int32, String) retorna um processo no máximo. Se você quiser obter todos os processos que executam um aplicativo específico, use GetProcessesByName(String). Se houver vários processos no computador que executa o aplicativo especificado, GetProcessesByName(String) retornará uma matriz que contém todos os processos associados. Você pode consultar cada um desses processos, por sua vez, para seu identificador. O identificador de processo pode ser exibido no Processes
painel do Gerenciador de Tarefas do Windows. A PID
coluna exibe o identificador de processo atribuído a um processo.
Se você não especificar um machineName
, o computador local será usado. Como alternativa, você pode especificar o computador local definindo machineName
como o valor "." ou como uma cadeia de caracteres vazia ("").
O processId
parâmetro é um Int32 (um inteiro com sinal de 32 bits), embora a API subjacente do Windows use um DWORD
(um inteiro sem sinal de 32 bits) para APIs semelhantes. Isso é por razões históricas.