这个问题在CSDN上已有好多个帖子讨论过了,你可以在窗体的WndProc方法里来处理这个事情,如果得到的消息是系统关闭或注销的消息,则使当前的程序退出就可以了.可以参见如下的代码:protected override void WndProc(ref Message m)
{
//int WM_QUERYENDSESSION = 0x0011;
int WM_ENDSESSION = 0x0016;
if (m.Msg == WM_ENDSESSION )
{
MessageBox.Show("系统关闭");
m.WParam = (IntPtr)0;
//m.Result = (IntPtr)1;
//this.Close();
}
base.WndProc (ref m);
}
{
//int WM_QUERYENDSESSION = 0x0011;
int WM_ENDSESSION = 0x0016;
if (m.Msg == WM_ENDSESSION )
{
MessageBox.Show("系统关闭");
m.WParam = (IntPtr)0;
//m.Result = (IntPtr)1;
//this.Close();
}
base.WndProc (ref m);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货