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

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

#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");
}
时间: 2024-10-07 05:16:26

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

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

C# Win32控制台应用程序忽略 Ctrl + C,阻止程序退出,这里使用到了Windows API SetConsoleCtrlHandler函数 注意:在VS中调试执行时,在处理程序例程中设置断点,不会中断:会提示:无可用源,如下图: 完整示例代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件

问题: 原配的Visual Studio 2015专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: 解决: 1.添加的办法是点击上图所示的新建项目界面的Visual C++下面的Windows,再点击右边的"安装通用Windows平台工具",弹出如下对话框,点击"安装": 2.如果当前Visual Studio 2015正打开,会提示将其关闭以减少资源的利用,点击继续: 3.如

《Visual c++2013入门经典(第7版)》上机练习:为 Win32 控制台应用程序创建项目

看到<那些年我们追过的Wrox精品红皮计算机图书>有奖活动 下载了<Visual c++2013入门经典(第7版)>的试读PDF,开始学习. 这本书的读者对象本书针对任何想要学习如何使用 Visual C++编写在 Microsoft Windows 操作系统下运行的 C++应用程序的读者.阅读本书不需要预先具备任何特定编程语言的知识.如果属于下列 3 种情形之一,你就适合学习本教程:● 属于编程新手,十分渴望投入编程世界,并最终掌握 C++.要取得成功,你至少需要对计算机的工作原

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

背景 Visual Studio C++ 创建新项目蹦出来如下选项: Win32控制台应用程序,Win32项目,MFC有什么区别? 正文: Win32控制台,没有界面,命令行执行生成的文件则直接在后台运行,运行效果如下:生成的".exe"文件相当于Linux系统下用gcc编译出来一个".out"文件,直接运行操作即可,只有命令符,没有界面. Win32项目这个就有界面了,但是界面里面的控件,基本上要自己去实现. MFC项目这个也有界面,可是界面里面的控件就不需要自己

安装VC2008 Express及使用之编写Win32控制台应用程序(初学者适用)

安装VC2008 1.双击所下载的安装包,选择setup.exe并双击 2 2.出来安装界面,点下一步 3.接受安装协议,点下一步 4.点击安装 5.等着安装完成及点退出完成安装 使用VC2008开发简单C/C++程序的过程 1.点击"开始"菜单,选择"所有程序"中的"Microsoft Visual C++ 2008 Express Edition" 2.文件-->新建-->项目:选择Win32项目类型,选Win32控制台应用程序,

win32控制台应用程序中使用CString类型的方法

环境:win7 64位  + vs2010 一直在找,MFC不懂真没办法,顺便记住.... 新建win32控制台应用程序中不能使用cstring类型,此时包含头文件#include <afxwin.h>,并在项目属性->配置属性->常规 "项目默认值"->"MFC的使用"中选择"在静态库中使用MFC"或者"在共享DLL中使用MFC"即可

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

    win32应用程序是有窗体的(当然也可以没有),有Windows消息循环机制的.而win32控制台应用程序只是在控制台下运行的程序,类似以前dos的程序. 后续答案: Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序.其中Win32 Application 就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的.不规则形状的…… 它们都是所谓的GUI(Graphics User Interfac

在win32控制台应用程序中实现定时器

1.SetTimer:在控制台应用程序中同样可以用SetTimer实现定时器的效果. 普通的win32程序中定时器的应用很多也很方便,但是在win32控制台中也是可以使用定时器的,利用的是windows程序的消息循环机制,如下: #include<iostream> #include<windows.h> using namespace std; //定时器ID DWORD dwTimerId = 0; void CALLBACK TimeProc( HWND hwnd, UINT

win7+vs2010+Qt addin新建win32控制台程序编译出错问题

最近遇到一个问题,每次新建win32控制台 应用程序,编译的时候都会莫名其妙地出现一个问题:LINK : fatal error LNK1123: failure during conversion to COFF: file invalid. 具体也不知道啥意思:但是解决方法是: 1.因为虽然是win32程序,但是引用的库都是64位的,所以要把程序改为x64的 2.修改工程属性,由yes改为no,如下图所示: 版权声明:本文为博主原创文章,未经博主允许不得转载.