在Windows关闭之前关闭我的程序

时间:2016-11-27 04:28:25

标签: c++ dev-c++

我正在制作一个程序,在关闭计算机时必须保存文件而无需用户交互。我试过了,但是我无法理解如何去做,因为我找到的大部分信息都是针对C#的。我使用下面的C ++代码找到了SystemEvents::SessionEnding事件,但我不知道如何在dev-c ++中实现它:

public:
    event SessionEndingEventHandler^ SessionEnding {
        static void add(SessionEndingEventHandler^ value);
        static void remove(SessionEndingEventHandler^ value);
    }
}

1 个答案:

答案 0 :(得分:4)

您展示的代码不是C ++。它是C ++ / CLI,也就是C ++ w / .NET托管扩展。它只适用于Visual Studio。

简单的C / C ++方式来做你想要的是:

  1. 在GUI项目中使用窗口过程来处理WM_QUERYENDSESSIONWM_ENDSESSION窗口消息。

  2. 在控制台项目中使用SetConsoleCtrlHandler()来处理CTRL_LOGOFF_EVENTCTRL_SHUTDOWN_EVENT次通知。

  3. 在服务项目中使用RegisterServiceCtrlHandlerEx()来处理SERVICE_CONTROL_PRESHUTDOWNSERVICE_CONTROL_SHUTDOWN次通知。

  4. 有关详细信息,请参阅MSDN:

    Logging Off

    Shutting Down