2016-11-27 10 views
0

私は、コンピュータの電源を切っているときにユーザの介入なしにファイルを保存しなければならないプログラムを作っています。私は試しましたが、私はそれを行う方法を理解することができません、私が見つけた情報のほとんどはC#のためです。私はC++のために以下のコードを使用してSystemEvents::SessionEndingイベントを見つけましたが、私はDEV-C++でこれを実装する方法を知っているドント:Windowsをシャットダウンする前に私のプログラムを閉じます

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

これは、C++ではありません。これはC++/cliで、.Netをターゲットとした言語です。 Windows APIを使用してそれを行う方法を見つける必要があります。 – Eugene

答えて

4

あなたが示したコードは、C++ではありません。これは、C++/CLI(別名C++、.NET管理拡張)です。 Visual Studioでのみ動作します。

あなたが探しているものを行うには通常のC/C++の方法があるに:

  1. WM_QUERYENDSESSIONWM_ENDSESSIONウィンドウメッセージを処理するためのGUIプロジェクトにウィンドウプロシージャを使用します。

  2. コンソールプロジェクトではCTRL_LOGOFF_EVENTCTRL_SHUTDOWN_EVENTの通知を処理するためにSetConsoleCtrlHandler()を使用します。

  3. RegisterServiceCtrlHandlerEx()SERVICE_CONTROL_PRESHUTDOWNSERVICE_CONTROL_SHUTDOWNの通知を処理するサービスプロジェクトで使用してください。

は、詳細については、MSDNを参照してください。

Logging Off

Shutting Down

+0

ありがとう、あなたが私の志向、私のアプリケーションはコンソールにあるので、setConsoleCtrlHandlerを使用してHandlerRoutineを追加しました。CTRL_SHUTDOWN_EVENTを使ってWindowsをオフにしているときに検出します。 – CarlosS

関連する問題