Поделиться через


Практическое руководство. Остановка процессов

Обновлен: Ноябрь 2007

Существует два метода, которые можно использовать для остановки процесса с помощью компонента Process. Используемый метод зависит от типа останавливаемого процесса.

  • Если процесс имеет графический пользовательский интерфейс, вызовите метод CloseMainWindow. Этот метод отправляет главному окну процесса запрос на закрытие и работает точно так же, как команда "Закрыть" пользовательского интерфейса. Использование данного метода позволяет конечной программе предложить пользователю сохранить все несохраненные данные во время операции очистки.

  • Если процесс не имеет графического пользовательского интерфейса, вызовите метод Kill.

    05abh773.alert_caution(ru-ru,VS.90).gifВнимание!

    Вызов метода Kill останавливает процесс незамедлительно без предложения сохранить измененные данные. Все несохраненные данные будут потеряны.

Если необходимо, чтобы компонент был извещен о завершении процесса операционной системой, следует установить для свойства EnableRaisingEvents значение true. Свойство EnableRaisingEvents используется в асинхронной обработке для уведомления приложения о завершении процесса.

Остановка процесса

  1. Вызовите метод GetProcessesByName для извлечения процесса, который требуется остановить.

    Дополнительные сведения см. в разделе Практическое руководство. Привязка к существующим процессам.

  2. Вызовите один из следующих методов:

    • Если процесс имеет пользовательский интерфейс, вызовите метод CloseMainWindow.

    • Если процесс безоконный, вызовите метод Kill.

    В следующем примере показано, как вызвать метод CloseMainWindow, чтобы закрыть все экземпляры программы Блокнот, запущенные на локальном компьютере:

    Dim myProcesses() As Process
    Dim myProcess As Process
    ' Returns array containing all instances of "Notepad".
    myProcesses = Process.GetProcessesByName("Notepad")
    For Each myProcess In myProcesses
        myProcess.CloseMainWindow()
    Next
    
         Process[] myProcesses;
            // Returns array containing all instances of Notepad.
            myProcesses = Process.GetProcessesByName("Notepad");
            foreach (Process myProcess in myProcesses)
            {
                myProcess.CloseMainWindow();
            }
    

См. также

Задачи

Практическое руководство. Привязка к существующим процессам

Основные понятия

Знакомство со способами наблюдения за процессами Windows и управлением этими процессами

Другие ресурсы

Управление процессами