Cómo: Detener procesos

Actualización: noviembre 2007

Pueden utilizarse dos métodos para detener un proceso con un componente Process. El método que se utilice depende del tipo de proceso que se va a detener.

  • Si el proceso tiene una interfaz gráfica para el usuario, llame al método CloseMainWindow. Este método envía una solicitud de cierre a la ventana principal del proceso y se comporta igual que si se seleccionara el comando Cerrar en la barra de tareas de la interfaz de usuario. El uso de este método proporciona al programa de destino la oportunidad de solicitar al usuario que guarde los datos no guardados durante la operación de limpieza.

  • Si el proceso no tiene interfaz de usuario, llame al método Kill.

    Precaución:

    Si llama al método Kill, el proceso se detendrá inmediatamente sin solicitar al usuario que guarde los datos modificados. Los datos no guardados se perderán.

Si desea que el componente reciba una notificación cuando el sistema operativo haya cerrado un proceso, debe establecer la propiedad EnableRaisingEvents en true. La propiedad EnableRaisingEvents se utiliza en procesos asincrónicos para notificar a la aplicación que se ha salido de un proceso.

Para detener un proceso

  1. Llame al método GetProcessesByName para recuperar el proceso que desee detener.

    Para obtener más información, vea Cómo: Enlazar con procesos existentes.

  2. Llame a uno de los métodos siguientes:

    • Si el proceso tiene una interfaz de usuario, llame al método CloseMainWindow.

    • Si el proceso no tiene ventanas, llame al método Kill.

    El ejemplo siguiente muestra cómo se llama al método CloseMainWindow para cerrar todas las instancias de Bloc de notas que se están ejecutando en un equipo local:

    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();
            }
    

Vea también

Tareas

Cómo: Enlazar con procesos existentes

Conceptos

Introducción a la supervisión y administración de procesos de Windows

Otros recursos

Administrar procesos