Process.GetProcessById Metodo

Definizione

Crea un nuovo componente Process e lo associa alla risorsa di processo esistente specificata.

Overload

GetProcessById(Int32)

Restituisce un nuovo componente Process, dato l'identificatore di un processo nel computer locale.

GetProcessById(Int32, String)

Restituisce un nuovo componente Process, in base a un identificatore di processo e al nome di un computer in rete.

GetProcessById(Int32)

Origine:
Process.cs
Origine:
Process.cs
Origine:
Process.cs

Restituisce un nuovo componente Process, dato l'identificatore di un processo nel computer locale.

public static System.Diagnostics.Process GetProcessById (int processId);

Parametri

processId
Int32

Identificatore univoco del sistema di una risorsa di processo.

Restituisce

Componente Process associato alla risorsa di processo locale identificata dal parametro processId.

Eccezioni

Il processo specificato dal parametro processId non è in esecuzione. L'identificatore potrebbe essere scaduto.

Esempio

Nell'esempio seguente vengono recuperate le informazioni del processo corrente, i processi in esecuzione nel computer locale, tutte le istanze del Blocco note in esecuzione nel computer locale e un processo specifico nel computer locale. Recupera quindi le informazioni per gli stessi processi in un computer 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();
        }
    }
}

Commenti

Utilizzare questo metodo per creare un nuovo componente Process e associarlo a una risorsa di processo nel computer locale. La risorsa di processo deve esistere già nel computer, perché GetProcessById(Int32) non crea una risorsa di sistema, ma associa piuttosto una risorsa a un componente Process generato dall'applicazione. Un processo Id può essere recuperato solo per un processo attualmente in esecuzione nel computer. Al termine del processo, GetProcessById(Int32) genera un'eccezione se viene passato un identificatore scaduto.

In qualsiasi computer specifico, l'identificatore di un processo è univoco. GetProcessById(Int32) restituisce al massimo un processo. Per ottenere tutti i processi che eseguono un'applicazione specifica, usare GetProcessesByName(String). Se sono presenti più processi nel computer che esegue l'applicazione specificata, GetProcessesByName(String) restituisce una matrice contenente tutti i processi associati. È possibile eseguire una query su ognuno di questi processi a sua volta per il relativo identificatore. L'identificatore del processo può essere visualizzato nel pannello Processes di Gestione attività di Windows. Nella colonna PID viene visualizzato l'identificatore del processo assegnato a un processo.

Il parametro processId è un Int32 (intero con segno a 32 bit), anche se l'API di Windows sottostante usa un DWORD (intero senza segno a 32 bit) per API simili. Questo è per motivi storici.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetProcessById(Int32, String)

Origine:
Process.cs
Origine:
Process.cs
Origine:
Process.cs

Restituisce un nuovo componente Process, in base a un identificatore di processo e al nome di un computer in rete.

public static System.Diagnostics.Process GetProcessById (int processId, string machineName);

Parametri

processId
Int32

Identificatore univoco del sistema di una risorsa di processo.

machineName
String

Nome di un computer in rete.

Restituisce

Componente Process associato a una risorsa di processo remota identificata dal parametro processId.

Eccezioni

Il processo specificato dal parametro processId non è in esecuzione. L'identificatore potrebbe essere scaduto.

-o-

La sintassi del parametro machineName non è valida. Il nome potrebbe avere lunghezza zero (0).

Il parametro machineName è null.

Esempio

Nell'esempio seguente vengono recuperate le informazioni del processo corrente, i processi in esecuzione nel computer locale, tutte le istanze del Blocco note in esecuzione nel computer locale e un processo specifico nel computer locale. Recupera quindi le informazioni per gli stessi processi in un computer 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();
        }
    }
}

Commenti

Usare questo metodo per creare un nuovo componente Process e associarlo a una risorsa di processo in un computer remoto in rete. La risorsa di processo deve esistere già nel computer specificato, perché GetProcessById(Int32, String) non crea una risorsa di sistema, ma associa piuttosto una risorsa a un componente Process generato dall'applicazione. Un processo Id può essere recuperato solo per un processo attualmente in esecuzione nel computer. Al termine del processo, GetProcessById(Int32, String) genera un'eccezione se viene passato un identificatore scaduto.

In qualsiasi computer specifico, l'identificatore di un processo è univoco. GetProcessById(Int32, String) restituisce al massimo un processo. Per ottenere tutti i processi che eseguono un'applicazione specifica, usare GetProcessesByName(String). Se sono presenti più processi nel computer che esegue l'applicazione specificata, GetProcessesByName(String) restituisce una matrice contenente tutti i processi associati. È possibile eseguire una query su ognuno di questi processi a sua volta per il relativo identificatore. L'identificatore del processo può essere visualizzato nel pannello Processes di Gestione attività di Windows. Nella colonna PID viene visualizzato l'identificatore del processo assegnato a un processo.

Se non si specifica un machineName, viene utilizzato il computer locale. In alternativa, è possibile specificare il computer locale impostando machineName sul valore "." o su una stringa vuota ("").

Il parametro processId è un Int32 (intero con segno a 32 bit), anche se l'API di Windows sottostante usa un DWORD (intero senza segno a 32 bit) per API simili. Questo è per motivi storici.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1