回复: QT控制台程序,如何在关闭控制台时候,获取关闭控制台消息
#11 [liuyuanan 11-19 19:24]
我试过,如下方法可以实现:
#include
#include
#include
BOOL HandlerRoutine(DWORD dwCtrlType)
{
switch (dwCtrlType)
{
case CTRL_C_EVENT:
printf("ctrl+c\n") ;
return TRUE;
case CTRL_CLOSE_EVENT:
printf("ctrl close\n") ;
return TRUE;
case CTRL_BREAK_EVENT:
printf("CTRL_BREAK_EVENT\n") ;
case CTRL_LOGOFF_EVENT:
printf("CTRL_LOGOFF_EVENT\n") ;
case CTRL_SHUTDOWN_EVENT:
printf("CTRL_SHUTDOWN_EVENT\n") ;
default:
return FALSE;
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
SetConsoleCtrlHandler((PHANDLER_ROUTINE)HandlerRoutine,TRUE);
return a.exec();
}
#12 回 郑关耳 的帖子 [foxgod 04-28 13:03]
郑关耳:void QCoreApplication::aboutToQuit()
或通过QCoreApplication::exec返回判断。
只能试试看 (2014-06-06 20:49)
你说的这个函数,在window平台上触发不了这个函数
https://www.doc88.com/p-9109659704596.html 第10页说明
#13 回 liuyuanan 的帖子 [foxgod 04-28 14:05]
liuyuanan:我试过,如下方法可以实现:
#include
#include
#include
....... (2014-11-19 19:24)
试验了,确实可以获取各种关闭,还可以执行别的函数
#14 回 liuyuanan 的帖子 [foxgod 04-28 17:46]
liuyuanan:我试过,如下方法可以实现:
#include
#include
#include
....... (2014-11-19 19:24)
不过如果起了多个子进程,子进程在做大量运算的时候,关闭窗口,这个函数HandlerRoutine()进不来。有什么解决的吗??