原理:当用户点击关机按钮时,会发出一个指定。只要程序捕获这个指令后马上结束本身进程即可。
C#实现,通过在主进程的代码中重载窗体过程函数WndProc即可:
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x11)//WM_QUERYENDSESSION
{
m.Result = (IntPtr)1;//0不关闭程序;1关闭程序
return;
}
else if (m.Msg == 0x16)//WM_ENDSESSION
{
}
base.WndProc(ref m);
}