Cerrar aplicación de Consola

31/10/2003 - 22:15 por Julio | Informe spam
Tengo una aplicación de Consola (es decir, sin interfaz
gráfica, sólo se abre una ventana DOS) que en algún
momento queda en un ciclo while infinito:

while( true )
{
myManualResetEvent.Reset();
myManualResetEvent.WaitOne();
}

Para cerrar la aplicación, hago click en el botón "Cerrar"
de la ventana (en la esquina superior derecha). Y la
consola se cierra sin problemas.

Lo malo, es que necesito "capturar" o darme cuenta que se
desea cerrar la ventana, porque antes de cerrarla debo
liberar unos elementos y cerrar una conección que tengo
establecida con otra aplicación (vía SOAP).

Es decir, quiero poder detectar el click sobre el
botón "Cerrar" para poder terminar la aplicación en buena
forma, cerrando todas las conecciones y desalojando la
memoria que tengo ocupada.

Gracias,


Julio.
 

Leer las respuestas

#1 Luis Gómez Sánchez [MS]
04/11/2003 - 22:15 | Informe spam
Buenas,

El problema es que una aplicación de consola no tiene bucle de mensajes, por
ese motivo no procesa los mensajes enviados por Windows en respuesta a, por
ejemplo, el cierre de ventana (WM_CLOSE, WM_DESTROY).

La mejor alternativa es generar una aplicación simple de ventana (Win32) y
controlarlo directamente.


Un saludo.

Luis Gómez
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.



"Julio" wrote in message
news:043a01c39ff4$1f65aea0$
Tengo una aplicación de Consola (es decir, sin interfaz
gráfica, sólo se abre una ventana DOS) que en algún
momento queda en un ciclo while infinito:

while( true )
{
myManualResetEvent.Reset();
myManualResetEvent.WaitOne();
}

Para cerrar la aplicación, hago click en el botón "Cerrar"
de la ventana (en la esquina superior derecha). Y la
consola se cierra sin problemas.

Lo malo, es que necesito "capturar" o darme cuenta que se
desea cerrar la ventana, porque antes de cerrarla debo
liberar unos elementos y cerrar una conección que tengo
establecida con otra aplicación (vía SOAP).

Es decir, quiero poder detectar el click sobre el
botón "Cerrar" para poder terminar la aplicación en buena
forma, cerrando todas las conecciones y desalojando la
memoria que tengo ocupada.

Gracias,


Julio.

Preguntas similares