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.243 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


7 Comments

  1. Muy interesante el ejemplo, desconocia totalmente la existencia de la variable [ShutdownSource].
    Una vez mas gracias por otro buen ejemplo

  2. hola amigo donde consigo el plugin neodouble lo estado buscando y nada que lo consigo entre a la pagina del creadoy t el link no sirve tienes algun link que sirva para bajarlo Gracias muy bueno los ejemplos

  3. Hola, estoy empezando con esto del neobook y estoy muy muy verde.
    He estado buscando pero no consigo encontrar una duda que tengo sobre la accion exit.
    Ya que esto tb va de salir por eso lo pongo por aki.

    tengo un boton con la accion :

    Exit “Salir” “Realmente desea salir?”

    Ahora me gustaria añadir una accion segun si se responde si o no.
    en un messagebox es facil pero en este mensaje no se cual es la variable que guarda
    la respuesta si es ke hay.

    Si alguien me puede hechar una mano con esto le estaria muy agradecido.

    Gracias & salu2

  4. Hola KeNNoX la acción exit no almacena la opción seleccionada. Para hacerlo, el único camino es la acción messagebox.

    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *