Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo llamar a una función cuando un programa C++ está cerrado (como hacer clic en la cruz en la esquina superior derecha de la consola)?

¿Cómo llamar a una función cuando un programa C++ está cerrado (como hacer clic en la cruz en la esquina superior derecha de la consola)?

Necesita llamar a la función API de WINDOWS: función SetConsoleCtrlHandler. Para saber cómo utilizar esta función, consulte:/en-us/library/Windows/desktop/ms 686016 (v = vs. 85). aspx.

#¿Incluir? " stdafx.h "

#¿Contiene? & ltstdio.h & gt

#¿Contiene? & ltwindows.h & gt

¿Booleano? CtrlHandler(DWORD?fdwCtrlType);

int? main(int?argc,?char?*argv[])

{

¿Si? (setconsolectlhandler((PHANDLER _ ROUTINE)controlador ctrl,? verdadero))

{

Printf("¿Llamar a WINDOWS? Función API ->; función SetConsoleCtrlHandler.\n"); /p>

¿Cuándo? (1)?{}

}

Otros

{

printf("Error:? ¿Es posible? ¿No es posible? ¿Configuración?Control?Handler.\n");

}

Sistema("pausa");

¿Volver? 0;

}

¿Booleano? CtrlHandler(DWORD?fdwCtrlType)

{

¿Cambiar? (fdwCtrlType)

{

/*?¿Manejar? ¿eso? ¿CTRL-C? ¿Señal? */

¿Caso? CTRL_C_event:

printf("CTRL-C?event\n");

Bip(750,?300);

¿Regresar? Real;

/*?¿Mango? ¿eso? ¿CTRL-BREAK? ¿Señal? */

¿Caso? CTRL_BREAK_event:

printf("CTRL-BREAK? evento \ n ");

Bip(900,?200);

¿Volver? Real;

/*?¿Mango? ¿eso? ¿CTRL-CERRAR? ¿Señal? */

¿Caso? CTRL_CLOSE_Event:

Printf("Haga clic en " p>¿Volver? Real;

/*?¿Mango? ¿eso? CTRL-¿Cerrar sesión? ¿Señal? */

¿Caso? CTRL _LOGOFF_Event:

printf("CTRL-LOGOFF?event\n");

Bip(1000,?200);

¿Volver? Real;

/*?¿Mango? ¿eso? CTRL-¿Apagar? ¿Señal? */

¿Caso? CTRL_SHUTDOWN_event:

printf("CTRL-SHUTDOWN?event\n");

Bip(750,?500);

¿Volver? verdadero;

Predeterminado:

¿Volver? Falso;

}

}