程序使用多線程或者線程池導致XP電腦無法關機問題處理

原理:當用戶點擊關機按鈕時,會發出一個指定。只要程序捕獲這個指令後馬上結束本身進程即可。

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);
        }
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章