当windows操作系统执行关闭动作时,它会发送给各个正在运行的应用程序一个消息WM_QUERYENDSESSION,告诉应用程序要关机了,如果反馈回来的消息值为1,那么windows操作系统就会自动关闭.因此,通过截获WM_QUERYENDSESSION消息,就能实现自动退出程序.
const int WM_QUERYENDSESSION = 0x0011;
///
/// 操作系统关闭时,关闭应用程序
///
/// 截获系统消息
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_QUERYENDSESSION://WM_QUERYENDSESSION
m.Result = (IntPtr)1;
break;
default :
base.WndProc(ref m);
break;
}
}