控制台设置回调函数,SetConsoleCtrlHandler

函数原型:    BOOL SetConsoleCtrlHandler( PHANDLER_ROUTINE HandlerRoutine, // 回调函数 BOOL Add // 表示添加还是删除 );

功能:向系统添加或删除回调函数;

 

和linux下的signal函数作用相识。

 

使用方法:

[cpp]  view plain copy
  1. BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)  
  2. {  
  3. //在这里可以对消息进行处理  
  4.     return 1;  
  5. }  
  6. int main( int argc, char **argv )  
  7. {  
  8.     SetConsoleCtrlHandler(HandlerRoutine, TRUE);  
  9. }  


接收得到的消息类型有:

[cpp]  view plain copy
  1. case CTRL_C_EVENT://  
  2.     break;  
  3. case CTRL_BREAK_EVENT://  
  4.     break;  
  5. case CTRL_CLOSE_EVENT://  
  6.     break;  
  7. case CTRL_LOGOFF_EVENT://  
  8.     break;  
  9. 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 - 当系统被关闭时.  


你可能感兴趣的:(C++,c,cmd,C++11)