#include
#include
bool ctrlhandler( DWORD fdwctrltype )
{
    switch( fdwctrltype )
    {
    // handle the ctrl-c signal.
    case CTRL_C_EVENT:
        printf( "ctrl-c event\n\n" );
        return( true );
    // ctrl-close: confirm that the user wants to exit.
    case CTRL_CLOSE_EVENT:
        printf( "ctrl-close event\n\n" );
        return( true );
    // pass other signals to the next handler.
    case CTRL_BREAK_EVENT:
        printf( "ctrl-break event\n\n" );
        return false;
    case CTRL_LOGOFF_EVENT:
        printf( "ctrl-logoff event\n\n" );
        return false;
    case CTRL_SHUTDOWN_EVENT:
        printf( "ctrl-shutdown event\n\n" );
        return false;
    default:
        return false;
    }
}
void main( void )
{
    if( SetConsoleCtrlHandler( (PHANDLER_ROUTINE) ctrlhandler, true ) )
    {
        printf( "\nthe control handler is installed.\n" );
        printf( "\n -- now try pressing ctrl+c or ctrl+break, or" );
        printf( "\n try logging off or closing the console...\n" );
        printf( "\n(...waiting in a loop for events...)\n\n" );
       while( 1 ){ Sleep(100);}
    }
else
    printf( "\nerror: could not set control handler");
}

C++ Win32控制台应用程序捕捉关闭事件的更多相关文章

  1. C# Win32控制台应用程序忽略 Ctrl + C,阻止程序退出

    C# Win32控制台应用程序忽略 Ctrl + C,阻止程序退出,这里使用到了Windows API SetConsoleCtrlHandler函数 注意:在VS中调试执行时,在处理程序例程中设置断 ...

  2. vc2010 win32 控制台应用程序中文乱码

    vc2010 win32 控制台应用程序中文乱码 在 vc2010 上用 win32 控制台程序写些测试代码调用 windows api ,处理错误信息时,发现用 wprintf 输出的错误信息出现了 ...

  3. Visual Studio C++ Win32控制台应用程序,Win32项目,MFC的区别

    背景 Visual Studio C++ 创建新项目蹦出来如下选项: Win32控制台应用程序,Win32项目,MFC有什么区别? 正文: Win32控制台,没有界面,命令行执行生成的文件则直接在后台 ...

  4. win32应用程序和win32控制台应用程序的区别

          win32应用程序是有窗体的(当然也可以没有),有Windows消息循环机制的.而win32控制台应用程序只是在控制台下运行的程序,类似以前dos的程序. 后续答案: Win32 Appl ...

  5. VS2017:win32项目与win32控制台应用程序的转换方法

    原文:https://www.cnblogs.com/asuser/articles/12297251.html 刚开始使用VS2017新建项目工程时,有时把应用类型的工程建成控制台类型的工程,在编译 ...

  6. vs2010环境下将Win32控制台应用程序,改为Win32项目

    进入工程属性后,一次进入下面选项做相应修改 连接器 ---> 系统 --->子系统: 控制台 (/SUBSYSTEM:CONSOLE)改为:窗口 (/SUBSYSTEM:WINDOWS)

  7. 【转】WIN32 控制台程序

    http://blog.csdn.net/houmin0036/article/details/7702236 win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运行的应用 ...

  8. Win32程序和控制台应用程序的项目互转设置

    一般情况下,如果是windows程序,那么WinMain是入口函数,在VS2010中新建项目为"win32项目" 如果是dos控制台程序,那么main是入口函数,在VS2010中新 ...

  9. Win32控制台程序和Win32应用程序

    刚接触Windows那一套,大多数概念都还没建立起来,整理了一下网上对“Win32控制台程序”的理解,谢谢各位网友了. win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运 ...

随机推荐

  1. sql设置事务隔离级别

    SET TRANSACTION一共有以下几种级别: SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPE ...

  2. SQL SERVER 查询特定的前几条数据

    1. 使用MS SQL Server 2008: 2. 数据库内容如下: insert into xuexi1 values('张三0', '数学', 98 ) insert into xuexi1 ...

  3. Springmvc整合mybatis

    http://blog.csdn.net/geloin/article/details/7536968 http://blog.csdn.net/woshi74/article/details/378 ...

  4. 有用的前端demo

    js定时器循环切换字体和背景颜色<script type="text/javascript"> var flashId = 0; setInterval(functio ...

  5. 武汉科技大学ACM:1005: 华科版C语言程序设计教程(第二版)例题5.8

    Problem Description 老师给小豪出了一道题目:给你两个整数x和n(-10<=x<=10,1<=n<=10),让你求出x^1+x^2+x^3+……+x^n的结果 ...

  6. 函数递归时,递归次数到900多时,就是抛出异常exception RuntimeError('maximum recursion depth exceeded',)

    import subprocess import multiprocessing import urllib import sys import os import pymongo import si ...

  7. Oracle数据库之PL/SQL流程控制语句

    Oracle数据库之PL/SQL流程控制语句 在任何计算机编程语言(如C,Java,C#等)都有各种流程控制语句,同样,在PL/SQL中也存在这样的流程控制结构. 几种常见的流程控制结构: 一.条件结 ...

  8. with语句

    <script type="text/javascript"> /* with语句:有了 With 语句,在存取对象属性和调用方法时就不用重复指定对象. 格式: wit ...

  9. Linux_install mod_ssl openssl apache

    1.下载 mod_ssl 和 apache 登入http://www.modssl.org/source/,下载 mod_ssl-2.8.31-1.3.41.targz: 2.8.31是mod_ssl ...

  10. Altium中Fill,Polygon Pour,Plane的区别和用法

    Fill:表示绘制一块实心的铜皮,将区域中的所有连线和过孔连接在一块,而不考虑是否属于同一个网络.假如所绘制的区域中有VCC和GND两个网络,用Fill命令会把这两个网络的元素连接在一起,这样就有可能 ...