Windows 關機時會發送 WM_QUERYENDSESSION (0x0011) 訊息給所有應用程式。回傳非零值表示同意結束。
protected override void WndProc(ref Message m) {
switch (m.Msg) {
case 0x0011: // WM_QUERYENDSESSION
m.Result = (IntPtr)1; // 同意關機
break;
default:
base.WndProc(ref m);
break;
}
}