C# Tips


Windowsのシャットダウンを検知するには


WndProcを上書きします。
ここでキャッチされたメッセージを解析して、どのような理由でフォームが閉じられようとしているのかを調べます。
WM_ENDSESSIONが発行されていたらそれは、OSのシャットダウンによってFormが閉じられようとしているということです。

bool ShutDownFlag = false;

protected override void WndProc(ref Message m) 
{
    const int WM_ENDSESSION = 0x16;

    switch (m.Msg)
    {
        case WM_ENDSESSION:
      Console.WriteLine("Windows is shutting down!!");
            ShutDownFlag = true;
            break;
    }
    base.WndProc (ref m);
} 


目次に戻る
Copyright(c) 2008 WoodenSoldier Software