函数原型: BOOL SetConsoleCtrlHandler( PHANDLER_ROUTINE HandlerRoutine, // 回调函数 BOOL Add // 表示添加还是删除 );
功能:向系统添加或删除回调函数;
和linux下的signal函数作用相识。
使用方法:
BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
//在这里可以对消息进行处理
return 1;
}
int main( int argc, char **argv )
{
SetConsoleCtrlHandler(HandlerRoutine, TRUE);
}
接收得到的消息类型有:
case CTRL_C_EVENT://
break;
case CTRL_BREAK_EVENT://
break;
case CTRL_CLOSE_EVENT://
break;
case CTRL_LOGOFF_EVENT://
break;
case CTRL_SHUTDOWN_EVENT://
CTRL_C_EVENT - 当用户按下了CTRL+C,或者由GenerateConsoleCtrlEvent API发出.
CTRL_BREAK_EVENT - 用户按下CTRL+BREAK, 或者由GenerateConsoleCtrlEvent API发出.
CTRL_CLOSE_EVENT - 当试图关闭控制台程序,系统发送关闭消息。
CTRL_LOGOFF_EVENT - 用户退出时,但是不能决定是哪个用户.
CTRL_SHUTDOWN_EVENT - 当系统被关闭时.