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

参考
[url]http://blog.sina.com.cn/s/blog_690878d50101ls05.html[/url]

没有什么好解释的,直接看代码吧

#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");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值