Compartir vía


Process.GetProcessesByName Método

Definición

Crea una matriz de nuevos componentes Process y los asocia a los recursos de proceso existentes que comparten el nombre del proceso especificado.

Sobrecargas

GetProcessesByName(String, String)

Crea una matriz de nuevos componentes Process y los asocia a todos los recursos de proceso de un equipo remoto que comparten el nombre del proceso especificado.

GetProcessesByName(String)

Crea una matriz de nuevos componentes Process y los asocia a todos los recursos de proceso del equipo local que comparten el nombre de proceso especificado.

GetProcessesByName(String, String)

Source:
Process.Linux.cs
Source:
Process.Linux.cs
Source:
Process.Linux.cs

Crea una matriz de nuevos componentes Process y los asocia a todos los recursos de proceso de un equipo remoto que comparten el nombre del proceso 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

Nombre descriptivo del proceso.

machineName
String

Nombre de un equipo en la red.

Devoluciones

Matriz de tipo Process que representa los recursos del proceso que ejecutan la aplicación o el archivo especificado.

Atributos

Excepciones

La sintaxis de parámetro machineName no es válida. Puede tener longitud cero (0).

El parámetro machineName es null.

La plataforma del sistema operativo no admite esta operación en equipos remotos.

Se ha producido un error en el intento de conectarse a machineName.

o bien

Hay problemas de acceso a las API del contador de rendimiento que se usan para obtener información del proceso. Esta excepción es específica de Windows NT, Windows 2000 y Windows XP.

Se ha producido un problema al obtener acceso a una API del sistema subyacente.

Ejemplos

En el ejemplo siguiente se recupera información del proceso actual, los procesos que se ejecutan en el equipo local, todas las instancias del Bloc de notas que se ejecutan en el equipo local y un proceso específico en el equipo local. A continuación, recupera información de los mismos procesos en un equipo 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

Comentarios

Use este método para crear una matriz de nuevos Process componentes y asociarlos a todos los recursos de proceso que ejecutan el mismo archivo ejecutable en el equipo especificado. Los recursos de proceso ya deben existir en el equipo, ya que GetProcessesByName no crea recursos del sistema, sino que los asocia a los componentes generados por Process la aplicación. processName Se puede especificar para un archivo ejecutable que no se está ejecutando actualmente en el equipo local, por lo que la matriz que devuelve el método puede estar vacía.

El nombre del proceso es un nombre descriptivo para el proceso, como Outlook, que no incluye la extensión .exe ni la ruta de acceso. GetProcessesByName resulta útil para obtener y manipular todos los procesos asociados al mismo archivo ejecutable. Por ejemplo, puede pasar un nombre de archivo ejecutable como processName parámetro para apagar todas las instancias en ejecución de ese archivo ejecutable.

Aunque un proceso Id es único para un único recurso de proceso en el sistema, varios procesos del equipo local pueden ejecutar la aplicación especificada por el processName parámetro . Por lo tanto, GetProcessById devuelve un proceso como máximo, pero GetProcessesByName devuelve una matriz que contiene todos los procesos asociados. Si necesita manipular el proceso mediante llamadas API estándar, puede consultar cada uno de estos procesos a su vez para su identificador. No se puede acceder solo a los recursos de proceso a través del nombre del proceso, pero, una vez que haya recuperado una matriz de Process componentes que se han asociado a los recursos del proceso, puede iniciar, finalizar y manipular los recursos del sistema.

Puede usar esta sobrecarga para obtener procesos en el equipo local, así como en un equipo remoto. Use "." para especificar el equipo local. Existe otra sobrecarga que usa el equipo local de forma predeterminada.

Puede acceder a los procesos en equipos remotos solo para ver información, como estadísticas, sobre los procesos. No se puede cerrar, finalizar (mediante Kill) ni iniciar procesos en equipos remotos.

Consulte también

Se aplica a

GetProcessesByName(String)

Source:
Process.cs
Source:
Process.cs
Source:
Process.cs

Crea una matriz de nuevos componentes Process y los asocia a todos los recursos de proceso del equipo local que comparten el nombre de proceso 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

Nombre descriptivo del proceso.

Devoluciones

Matriz de tipo Process que representa los recursos del proceso que ejecutan la aplicación o el archivo especificado.

Atributos

Excepciones

Hay problemas de acceso a las API del contador de rendimiento que se usan para obtener información del proceso. Esta excepción es específica de Windows NT, Windows 2000 y Windows XP.

Ejemplos

En el ejemplo siguiente se recupera información del proceso actual, los procesos que se ejecutan en el equipo local, todas las instancias del Bloc de notas que se ejecutan en el equipo local y un proceso específico en el equipo local. A continuación, recupera información de los mismos procesos en un equipo 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

Comentarios

Use este método para crear una matriz de nuevos Process componentes y asociarlos a todos los recursos de proceso que ejecutan el mismo archivo ejecutable en el equipo local. Los recursos de proceso ya deben existir en el equipo, ya que GetProcessesByName no crea recursos del sistema, sino que los asocia a los componentes generados por Process la aplicación. processName Se puede especificar para un archivo ejecutable que no se está ejecutando actualmente en el equipo local, por lo que la matriz que devuelve el método puede estar vacía.

El nombre del proceso es un nombre descriptivo para el proceso, como Outlook, que no incluye la extensión .exe ni la ruta de acceso. GetProcessesByName resulta útil para obtener y manipular todos los procesos asociados al mismo archivo ejecutable. Por ejemplo, puede pasar un nombre de archivo ejecutable como processName parámetro para apagar todas las instancias en ejecución de ese archivo ejecutable.

Aunque un proceso Id es único para un único recurso de proceso en el sistema, varios procesos del equipo local pueden ejecutar la aplicación especificada por el processName parámetro . Por lo tanto, GetProcessById devuelve un proceso como máximo, pero GetProcessesByName devuelve una matriz que contiene todos los procesos asociados. Si necesita manipular el proceso mediante llamadas API estándar, puede consultar cada uno de estos procesos a su vez para su identificador. No se puede acceder solo a los recursos de proceso a través del nombre del proceso, pero, una vez que haya recuperado una matriz de Process componentes que se han asociado a los recursos del proceso, puede iniciar, finalizar y manipular los recursos del sistema.

Consulte también

Se aplica a