函数原型: 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 - 当系统被关闭时.
本文介绍如何使用SetConsoleCtrlHandler函数向Windows系统添加或删除控制台处理程序。该函数类似于Linux下的signal函数,用于捕获并处理来自控制台的各种信号事件,如CTRL+C或关闭事件等。
1187

被折叠的 条评论
为什么被折叠?



