¿Cómo evitamos cerrar la aplicación desde el Administrador de tareas?
Para una aplicación de Windows,
¿Cómo evitamos que se cierre la aplicación desde el Administrador de tareas?
¿Cómo lo hacemos para la aplicación que hemos escrito, como lo hace la aplicación Nod32 Antivirus?
davy.ai
Prevenir el cierre de una aplicación de Windows desde el Administrador de tareas
Para evitar el cierre de una aplicación de Windows desde el Administrador de tareas, debemos implementar ciertas técnicas en nuestro código.
Podemos manejar el evento SystemEvents.SessionEnding, que se activa cuando un usuario intenta cerrar sesión, apagar o reiniciar el sistema. Podemos sobrescribir el controlador del evento para realizar ciertas acciones, como mostrar un cuadro de mensaje o solicitar al usuario que guarde su trabajo antes de cerrar la aplicación.
Podemos configurar un hook de Windows que intercepte el mensaje WM_CLOSE (Cierre de ventana) enviado por el Administrador de tareas cuando el usuario intenta cerrar la aplicación. Luego, podemos sobrescribir el controlador del hook para ignorar el mensaje o realizar alguna otra acción, como ocultar la ventana de la aplicación.
Podemos crear un servicio de Windows que aloje la aplicación y se ejecute en segundo plano. De esta manera, incluso si el usuario intenta cerrar la aplicación desde el Administrador de tareas, el servicio seguirá en ejecución y reiniciará la aplicación si es necesario.
El antivirus Nod32 utiliza una combinación de estas técnicas para evitar que su aplicación sea terminada desde el Administrador de tareas. Implementa un hook de Windows para interceptar el mensaje WM_CLOSE, maneja el evento SystemEvents.SessionEnding para pedir a los usuarios que guarden su trabajo antes de cerrar y se ejecuta como un servicio de Windows para asegurar que la aplicación continúe en ejecución incluso si el usuario intenta cerrarla.