• C++ Win32控制台应用程序捕捉关闭事件


     

     
    #include
    #include
    bool ctrlhandler( DWORD fdwctrltype )
    {
        switch( fdwctrltype )
        {
        // handle the ctrl-c signal.
        case CTRL_C_EVENT:
            printf( "ctrl-c event " );
            return( true );
        // ctrl-close: confirm that the user wants to exit.
        case CTRL_CLOSE_EVENT:
            printf( "ctrl-close event " );
            return( true );
        // pass other signals to the next handler.
        case CTRL_BREAK_EVENT:
            printf( "ctrl-break event " );
            return false;
        case CTRL_LOGOFF_EVENT:
            printf( "ctrl-logoff event " );
            return false;
        case CTRL_SHUTDOWN_EVENT:
            printf( "ctrl-shutdown event " );
            return false;
        default:
            return false;
        }
    }
    void main( void )
    {
        if( SetConsoleCtrlHandler( (PHANDLER_ROUTINE) ctrlhandler, true ) )
        {
            printf( " the control handler is installed. " );
            printf( " -- now try pressing ctrl+c or ctrl+break, or" );
            printf( " try logging off or closing the console... " );
            printf( " (...waiting in a loop for events...) " );
           while( 1 ){ Sleep(100);}
        }
    else
        printf( " error: could not set control handler");
    }
  • 相关阅读:
    Day01-基础加强笔记
    CS Academy Round#2 E.Matrix Coloring
    AtCoder ABC198 F
    NERC2021 B. Button Lock
    AtCoder ARC115 E
    NOI Online 2021 Round 1 提高组 愤怒的小 N
    洛谷 P6918 [ICPC2016 WF]Branch Assignment
    AtCoder ARC076 F
    Atcoder ABC155 F
    POJ 1966 Cable TV Network
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4502583.html
Copyright © 2020-2023  润新知