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

Определение

Создает массив из новых компонентов Process и связывает их с существующими ресурсами процесса, для которых имя процесса является общедоступным.Creates an array of new Process components and associates them with the existing process resources that all share the specified process name.

Перегрузки

GetProcessesByName(String) GetProcessesByName(String) GetProcessesByName(String) GetProcessesByName(String)

Создает массив из новых компонентов Process и связывает их со всеми ресурсами процесса на локальном компьютере, для которых заданное имя процесса является общедоступным.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)

Создает массив из новых компонентов Process и связывает их со всеми ресурсами процесса на удаленном компьютере, для которых заданное имя процесса является общедоступным.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)

Создает массив из новых компонентов Process и связывает их со всеми ресурсами процесса на локальном компьютере, для которых заданное имя процесса является общедоступным.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()

Параметры

processName
String String String String

Понятное имя процесса.The friendly name of the process.

Возвраты

Массив типа Process, представляющий ресурсы процесса, выполняющего указанное приложение или файл.An array of type Process that represents the process resources running the specified application or file.

Исключения

Существуют проблемы при доступе к API счетчиков производительности, которые используются для получения сведений о процессе.There are problems accessing the performance counter API's used to get process information. Это исключение характерно для Windows NT, Windows 2000 и Windows XP.This exception is specific to Windows NT, Windows 2000, and Windows XP.

Примеры

Следующий пример извлекает сведения текущего процесса, запущенного на локальном компьютере, все экземпляры Блокнота, выполняющиеся на локальном компьютере и определенного процесса на локальном компьютере.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. Затем он извлекает сведения для те же процессы на удаленном компьютере.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

Комментарии

Используйте этот метод для создания массива из новых Process компоненты и связать их со всеми ресурсами процесса, работающих под управлением тот же исполняемый файл на локальном компьютере.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. Ресурсы процесса должен уже существовать на компьютере, так как GetProcessesByName не создает системных ресурсов, а связывает их с генерируемые приложением Process компонентов.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. Объект processName может быть указан для исполняемого файла, который в настоящий момент не выполняется на локальном компьютере, поэтому этот метод возвращает массив может быть пустым.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.

Имя процесса — это понятное имя для процесса, например Outlook, который не поддерживает расширения .exe или путь.The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path. GetProcessesByName полезно для получения и обработки всех процессов, которые связаны с тот же исполняемый файл.GetProcessesByName is helpful for getting and manipulating all the processes that are associated with the same executable file. Например, можно передать имя исполняемого файла как processName параметр, чтобы завершить работу всех выполняющихся экземпляров этого исполняемого файла.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.

Хотя процесс Id является уникальным для одного ресурса процесса в системе, несколько процессов на локальном компьютере могут работать под управлением приложения, указанного processName параметра.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. Таким образом GetProcessById возвращает один процесс по крайней мере, но GetProcessesByName возвращает массив, содержащий все связанные процессы.Therefore, GetProcessById returns one process at most, but GetProcessesByName returns an array containing all the associated processes. Если вам нужно управлять с помощью стандартных вызовов API, можно запросить каждый из этих процессов, в свою очередь по его идентификатору.If you need to manipulate the process using standard API calls, you can query each of these processes in turn for its identifier. Воспользоваться ресурсами процесса процесса только через имя, но, после получения массив Process компоненты, которые были связаны с ресурсами процесса, можно запустить, окончания и управлять ресурсами системы.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.

Безопасность

LinkDemand
для полного доверия для непосредственного вызывающего объекта.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

Дополнительно

GetProcessesByName(String, String) GetProcessesByName(String, String) GetProcessesByName(String, String) GetProcessesByName(String, String)

Создает массив из новых компонентов Process и связывает их со всеми ресурсами процесса на удаленном компьютере, для которых заданное имя процесса является общедоступным.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()

Параметры

processName
String String String String

Понятное имя процесса.The friendly name of the process.

machineName
String String String String

Имя компьютера в сети.The name of a computer on the network.

Возвраты

Массив типа Process, представляющий ресурсы процесса, выполняющего указанное приложение или файл.An array of type Process that represents the process resources running the specified application or file.

Исключения

Недопустимый синтаксис параметра machineName.The machineName parameter syntax is invalid. Он может иметь нулевую длину (0).It might have length zero (0).

Параметр machineName имеет значение null.The machineName parameter is null.

Платформа операционной системы не поддерживает эту операцию на удаленных компьютерах.The operating system platform does not support this operation on remote computers.

Попытка подключиться к machineName завершилась ошибкой.The attempt to connect to machineName has failed.

-или--or- Существуют проблемы при доступе к API счетчиков производительности, которые используются для получения сведений о процессе.There are problems accessing the performance counter API's used to get process information. Это исключение характерно для Windows NT, Windows 2000 и Windows XP.This exception is specific to Windows NT, Windows 2000, and Windows XP.

Возникла проблема при доступе к базовому системному API.A problem occurred accessing an underlying system API.

Примеры

Следующий пример извлекает сведения текущего процесса, запущенного на локальном компьютере, все экземпляры Блокнота, выполняющиеся на локальном компьютере и определенного процесса на локальном компьютере.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. Затем он извлекает сведения для те же процессы на удаленном компьютере.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

Комментарии

Используйте этот метод для создания массива из новых Process компоненты и связать их со всеми ресурсами процесса, работающих под управлением тот же исполняемый файл на указанном компьютере.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. Ресурсы процесса должен уже существовать на компьютере, так как GetProcessesByName не создает системных ресурсов, а связывает их с генерируемые приложением Process компонентов.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. Объект processName может быть указан для исполняемого файла, который в настоящий момент не выполняется на локальном компьютере, поэтому этот метод возвращает массив может быть пустым.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.

Имя процесса — это понятное имя для процесса, например Outlook, который не поддерживает расширения .exe или путь.The process name is a friendly name for the process, such as Outlook, that does not include the .exe extension or the path. GetProcessesByName полезно для получения и обработки всех процессов, которые связаны с тот же исполняемый файл.GetProcessesByName is helpful for getting and manipulating all the processes that are associated with the same executable file. Например, можно передать имя исполняемого файла как processName параметр, чтобы завершить работу всех выполняющихся экземпляров этого исполняемого файла.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.

Хотя процесс Id является уникальным для одного ресурса процесса в системе, несколько процессов на локальном компьютере могут работать под управлением приложения, указанного processName параметра.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. Таким образом GetProcessById возвращает один процесс по крайней мере, но GetProcessesByName возвращает массив, содержащий все связанные процессы.Therefore, GetProcessById returns one process at most, but GetProcessesByName returns an array containing all the associated processes. Если вам нужно управлять с помощью стандартных вызовов API, можно запросить каждый из этих процессов, в свою очередь по его идентификатору.If you need to manipulate the process using standard API calls, you can query each of these processes in turn for its identifier. Воспользоваться ресурсами процесса процесса только через имя, но, после получения массив Process компоненты, которые были связаны с ресурсами процесса, можно запустить, окончания и управлять ресурсами системы.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.

Можно использовать эту перегрузку для получения процессов на локальном компьютере, а также на удаленном компьютере.You can use this overload to get processes on the local computer as well as on a remote computer. Используйте «.» для указания локального компьютера.Use "." to specify the local computer. Существует другая перегрузка, которая по умолчанию используется локальный компьютер.Another overload exists that uses the local computer by default.

Процессы на удаленных компьютерах только для того, чтобы просмотреть сведения о процессах, например статистика, доступны.You can access processes on remote computers only to view information, such as statistics, about the processes. Невозможно закрыть, завершать (с помощью Kill), или запускать процессы на удаленных компьютерах.You cannot close, terminate (using Kill), or start processes on remote computers.

Безопасность

LinkDemand
для полного доверия для непосредственного вызывающего объекта.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

SecurityPermission
на вызов неуправляемого кода.to call unmanaged code. Связанное перечисление: UnmanagedCodeAssociated enumeration: UnmanagedCode

Дополнительно

Применяется к