Impedir que se cierre la sesión de Windows
Artículo por Club Developers · 08 mayo 2006
2693 vistas
Para ello tendremos que añadir las siguientes líneas de código en nuestra clase, lo que permitirá detectar el intento de cierre de sesión y anularlo:
Para probar el código, compilar la aplicación y ejecutarla fuera del IDE.
Ahora, añade este código en InitializeComponent para gestionar el evento Closing.
csharp
// Mensaje de Windows QueryEndSession private const int WM_QUERYENDSESSION = 0x11; // flag que indica si la sesión se va a cerrar private bool _systemShutdown = false; // redefinición de la función virtual WndProc protected override void WndProc(ref System.Windows.Forms.Message m ) { if (m.Msg == WM_QUERYENDSESSION) _systemShutdown = true; base.WndProc(ref m); } // evento closing private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { // si se ha enviado el mensaje de cierre, lo anulamos if (_systemShutdown) { e.Cancel = true; _systemShutdown = false; MessageBox.Show("Cierre de la sesión Windows anulada"); } }
Para probar el código, compilar la aplicación y ejecutarla fuera del IDE.
Ahora, añade este código en InitializeComponent para gestionar el evento Closing.
csharp