我试过,如下方法可以实现:
#include <QtCore/QCoreApplication>
#include <windows.h>
#include <stdio.h>
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();
}