Desactivar el botón cerrar en Visual Basic NET
A raíz
de la petición de ayuda de un amigo, que desea que una aplicación arranque sin que
pueda ser terminada por el usuario pulsando el botón Cerrar (el aspa de la esquina
derecha) de la Barra de título del formulario ni mediante la pulsación de las teclas
ALT+F4, he encontrado muchos códigos en Internet, unos para C# y otros para
Visual Basic. Todos ellos tienen en común la necesidad de leer procedimientos
externos, almacenados en librerías de Windows, User32.dll en este caso concreto.
Pero así como los ejemplos encontrados para C#, por lo general, funcionan
bien y rápido, los que he visto para Visual Basic .NET me han dado muchos
problemas: algunos no funcionan bien y, los que sí lo hacen, tardan bastante en
desactivar el botón de cierre, lo que causa mal efecto.
Incluso Microsoft tiene un ejemplo de este tipo, pero referido a una aplicación
de consola, que puede ser consultado
aquí.
De todo ello ha salido este código en Visual Basic .NET, un código que desactiva
ese botón y el efecto de las teclas ALT+F4, haciéndolo de manera rápida, lo que
causa mejor impresión al usuario.
Si alguien desea profundizar sobre este asunto, ha de buscar información sobre las
API de Windows, pues en realidad éso es lo que se hace, utilizar procedimientos
externos a Visual Basic, existentes en librerías del sistema. En este ejercicio
se leen procedimientos de la librería USER32.DLL, y con ellos se actúa sobre
el llamado Menú de sistema de las ventanas, el que provee de funcionalidad
tanto a los botones de Maximizar / Minimizar / Cerrar como
a los elementos que cuelgan del icono de la Barra de título: Restaurar /
Mover / Tamaño / Minimizar / Maximizar / Separador
/ Cerrar.
Pulsa
aquí para ver el código
completo en Visual Basic .NET.