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.