原理:當用戶點擊關機按鈕時,會發出一個指定。只要程序捕獲這個指令後馬上結束本身進程即可。
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);
}