7

Evitar que se cierre la aplicación desde el botón cerrar de la barra de títulos

Buenas, mediante un mail me consultaron como se pude hacer para hacer una pregunta al estilo “Realmente desea Salir?”, esto es fácil si usamos un boton personalizado con la función Exit, pero esta persona se refería precisamente al botón cerrar de la barra de titulo (X).

Pues bien, para esto necesitamos de la variable [ShutdownSource]. Ésta variable contiene la causa del cierre de nuestra aplicación.

Puede contener:

NeoBook > La petición se generó por la acción Exit de neobook.

Windows > La petición se generó por Windows.

CloseButton > La petición se generó a través del botón Cerrar de la aplicación (alt+f4, etc).

Cambien necesitaremos de la variable [ShutdownStatus] para cancelar el cierre mediante la siguiente acción:

SetVar "[ShutdownStatus]" "False"

Sabiendo, finalmente procedemos a programar lo que evitara el cierre, para esto vamos a Libro>Propiedades>Acciones>Cierre y luego escribimos:

If "[ShutdownSource]" "=" "CloseButton"
	MessageBox "Salir" "Realmente desea salir?" "Si|No" "[op_salir]"
	If "[op_salir]" "=" "2"
		SetVar "[ShutdownStatus]" "False"
	Endif
EndIf

El código anterior comprueba si la petición de cierre fue del botón cerrar, si fue así pregunta si desea salir y guarda la opción elegida en la variable [op_salir], si ésta es igual a 2 (Respuesta No) cancelamos el cierre como vimos arriba, eso es todo, pues si se elige la Respuesta Si se guarda 1 en [op_salir] con lo que no hacemos nada pues la aplicación se cerrará cumpliendo su cometido el botón cerrar.
Screenshot del ejemplo:

ejemplo_salir

Descarga:

  ejemplo_salir.rar (651,1 KiB, 1.843 hits)

Nota: El ejemplo muestra que ocasiona la petición de cierre y tal cual lo explica el ejemplo muestra como evitar que se cierre si la petición es del botón cerrar. Prueben el ejemplo cerrando desde el botón salir, del botón cerrar (x) y haciendo click derecho>cerrar de la barra de tareas.


Eso es todo espero que les sea útil.

BuNKeR