`

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

 
阅读更多
参考
http://blog.sina.com.cn/s/blog_690878d50101ls05.html

没有什么好解释的,直接看代码吧
#include <iostream>
#include <sstream>
using namespace std;

BOOL ConsoleEventHandler(DWORD dwCtrlType)
{
    switch(dwCtrlType)
    {
    case CTRL_C_EVENT:// handle the ctrl-c signal
        {
            printf( "ctrl-c event\n\n" );
            return TRUE;
        }
    case CTRL_CLOSE_EVENT:// ctrl-close: confirm that the user wants to exit.
        {
            printf( "ctrl-close event\n\n" );
            return TRUE;
        }
    case CTRL_BREAK_EVENT:// pass other signals to the next handler.
        {
            printf( "ctrl-break event\n\n" );
            return TRUE;
        }
    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()
{
    if(SetConsoleCtrlHandler((PHANDLER_ROUTINE)ConsoleEventHandler, 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(TRUE)
        {
            //Do not let me go baby
            Sleep(5000);
        }

    }
    else
    {
        printf( "\nerror: could not set control handler");
    }
}
分享到:
评论

相关推荐

    C++ 鼠标轨迹(坐标)捕捉代码

    在VC++中,开发者会创建一个新的Win32控制台或Win32应用程序项目,然后将源代码添加到工程中。项目编译成功后,可以通过点击IDE上的“运行”按钮来执行程序,此时,程序应该能捕获并显示鼠标的实时坐标。 在代码...

    C_C++控制台界面编程 V3

    - **其他类型的项目**:如 Win32 控制台应用程序,提供更多的定制选项。 ##### 2. 转义字符及格式化输入、输出 - **概述**:讲解了 C/C++ 中转义字符的使用方法,以及如何格式化输入和输出。 - **详细内容**: -...

    win32小程序vc++ 鼠标轨迹、坐标显示

    在Windows编程领域,Win32 API(应用程序接口)是一个至关重要的工具,它为开发者提供了创建桌面应用程序的基础。本文将深入探讨如何使用VC++(Visual C++)开发一个Win32小程序,实现鼠标轨迹的捕捉与坐标显示功能...

    编程实现麦克风静音与取消

    这里的“麦克风”是指电脑上的音频输入设备,它捕捉到的声音可以被录音软件、在线会议工具或者游戏等应用所用。静音麦克风意味着切断声音输入,防止任何声音被系统记录或传输。 混音器编程(Mixer Programming)是...

    LeapDeveloperKit_3.2.1+45911_win.7z

    "LeapDeveloperKit_3.2.1+45911_win.7z" 是一个针对Windows操作系统的软件开发工具包,由Leap Motion公司提供,主要用于开发与Leap Motion控制器交互的应用程序。Leap Motion是一款先进的体感设备,可以捕捉并识别...

    使用opencv+vs实现电脑拍照

    3. **Visual Studio项目设置**:创建一个新的C++项目,选择Win32控制台应用程序。在“配置属性”中,添加OpenCV库的路径到“VC++目录”的“包含目录”和“库目录”下。同时,在“链接器”-&gt;“输入”中,添加OpenCV所...

    OpenCV打开摄像机显示在 OpenCV窗口上

    在Visual Studio中,创建一个新的Win32控制台应用程序项目。选择"Empty Project"模板,然后为项目命名。 2. **配置项目**: 在项目属性中,链接器的“输入”部分,添加OpenCV的库依赖。常见的库有`opencv_core`, ...

    Directshow_SDK笔记

    - **创建项目**: 在 Visual Studio 中创建新的 Win32 控制台应用程序项目。 ##### 2.2 DShow 示例代码分析 - **示例程序**: 分析一个简单的 DirectShow 示例程序,了解如何创建图形(graph)、连接滤镜(filter)、...

    基于gif.h的桌面录像 生成gif文件

    在VS2013中创建一个新的C/C++项目,选择“Win32控制台应用程序”。在项目属性中,确保链接器设置正确,能够找到并引用`gif.h`所需的库。如果需要,你可能还需要设置包含目录和库目录以包含`gif.h`所在的路径。 三、...

    获取键盘代码工具(VC做附代码)

    在本文中,我们将深入探讨如何使用Visual C++(VC)来创建一个获取键盘...这个过程涉及到Windows API的使用、事件处理以及基本的字符编码知识,对任何想要在Windows平台上开发应用程序的开发者都是一次宝贵的学习经验。

    计算机图形学

    在Visual C++.NET 2008下配置OpenGL环境,主要包括安装开发库文件,将头文件(.h)、静态库文件(.lib)和动态链接库文件(.dll)放入相应目录,并创建Win32控制台应用程序进行编程。 以上就是试卷中涉及的计算机...

    VS2015_OpenCV_Camera.pdf

    具体而言,在Debug|x64配置(对于32位应用程序是Win32)中,需要设置Vc++目录的包含目录以及库目录,然后在链接器的输入中添加附加依赖项,例如opencv_world400d.lib。这些设置使得编译器能够识别OpenCV提供的各种...

    fmurf:osc tuio midi dmx 集线器-开源

    3. **TUIO**: TUIO是为多点触控设备设计的一种协议,它允许不同的输入设备(如触摸屏、投影交互表面)将触控事件转换为网络消息,从而可以被任何支持TUIO的应用程序接收。这对于开发多用户、多触点的互动应用程序...

Global site tag (gtag.js) - Google Analytics