控制台消息的产生及处理
来源:互联网 发布:凡特网络验证系统 编辑:程序博客网 时间:2024/06/06 06:36
学过窗口程序的朋友都会知道消息的概念,也知道如何处理消息(系统消息或是自定义消息),但是其实我们的控制台程序也是有消息的,下面我们来看看控制台程序的消息的产生及处理:
首先我向大家介绍两个函数:
SetConsoleCtrlHandler:
BOOL WINAPI SetConsoleCtrlHandler(
__in PHANDLER_ROUTINE HandlerRoutine,
__in BOOL Add
);
这个函数用来定义ctrl消息的处理函数.
GenerateConsoleCtrlEvent:
BOOL WINAPI GenerateConsoleCtrlEvent(...);
这个函数用来产生消息.
关于这两个函数更多的信息请大家查阅CSDN.下面我们看一些这两个函数的简单运用.
#include <stdio.h>
#include <windows.h>
BOOL WINAPI HandlerRoutine(DWORD dwCtrlType);
int main(int argc, char *argv[])
{
SetConsoleCtrlHandler(HandlerRoutine,TRUE);
while(1);
return 0;
}
BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
switch(dwCtrlType)
{
case CTRL_C_EVENT:
printf("用户按下了Ctrl + C !/n");
break;
case CTRL_BREAK_EVENT:
printf("用户按下了Ctrl + Break !/n");
break;
case CTRL_CLOSE_EVENT:
printf("用户关闭了控制台(关闭菜单或从任务管理器)!/n");
break;
case CTRL_LOGOFF_EVENT:
printf("一个用户退出了!/n");
break;
case CTRL_SHUTDOWN_EVENT:
printf("用户关闭了操作系统!/n");
break;
default:
return FALSE;
break;
}
return TRUE;
}
这个程序用来捕获用户的消息并进行处理.这里可以捕获的消息只有5种.
1 Ctrl + C 2 Ctrl+ Break 3 用户关闭控制台 4 一个用户退出 5 用户关闭操作系统
下面我们来看一下如何产生控制台消息,即我们在程序中给控制台发送消息.
GenerateConsoleCtrlEvent(CTRL_C_EVENT,0);
在上面的程序代码中加上上面一句代码,然后运行程序,我们就可以看到运行结果了.上面代码的作用就是向控制台程序发送了一个Ctrl + C消息.
- 控制台消息的产生及处理
- 控制台处理关闭消息
- 控制台消息处理
- SetConsoleCtrlHandler 处理控制台消息
- SetConsoleCtrlHandler 处理控制台消息
- SetConsoleCtrlHandler 处理控制台消息
- SetConsoleCtrlHandler 处理控制台消息
- SetConsoleCtrlHandler 处理控制台消息
- SetConsoleCtrlHandler 处理控制台消息
- SetConsoleCtrlHandler 处理控制台消息
- SetConsoleCtrlHandler 处理控制台消息
- 转:SetConsoleCtrlHandler 处理控制台消息
- 窗口产生及消息循环
- 窗口产生及消息循环
- MFC中窗口收到WM_PAINT消息是如何处理的,什么情况下产生WM_PAINT消息
- 关于采用默认方式处理WM_NCLBUTTONDOWN消息而“无法”产生WM_NCLBUTTONUP消息的问题
- Win32编程中如何处理控制台消息
- Win32编程中如何处理控制台消息
- 【TCPIP】Unix下网络编程
- 人生若只如初见,何事秋风悲画扇?
- Hibernate---延迟加载
- 如何写robots.txt?
- 《代码揭秘》读后感
- 控制台消息的产生及处理
- Edward‘Wonderland的开始
- CMMI在中国之混乱-CMMI比ISO9000会更惨
- 用Javamail写的邮件接收程序
- 窗口中的控制台
- 中9专用机的升级与机顶盒序列号应该无关
- C++ 初学者指南 第二篇(14)
- 又到年关
- 你该如何学习编程