亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

防止Windows在我的程序運行時進入睡眠狀態?

防止Windows在我的程序運行時進入睡眠狀態?

蝴蝶刀刀 2019-11-29 10:35:21
我的程序運行時,我必須停止Windows進入睡眠狀態。而且我不僅想阻止睡眠定時器,而且還想取消睡眠事件,只要我按下睡眠按鈕或以其他任何方式主動讓計算機進入睡眠狀態。因此,SetThreadExecutionState是不夠的。或者...實際上,我不必完全阻止睡眠,只需將其延遲5-10秒即可讓程序完成任務。(我知道這是不良的程序行為,但這僅用于個人使用。)
查看完整描述

3 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

我通過USB連接的硬件設備遇到了這樣的問題。XP / Vista會在其中途進入睡眠/休眠狀態。很好,您說,當它恢復時它就可以繼續。如果硬件仍然連接!用戶習慣于在需要時拔出電纜。


您需要處理XP和Vista


在XP下,捕獲WM_POWERBROADCAST并查找PBT_APMQUERYSUSPEND wparam。


   // See if bit 1 is set, this means that you can send a deny while we are busy

   if (message.LParam & 0x1)

   {

      // send the deny message

      return BROADCAST_QUERY_DENY;

   } // if

   else

   {

      return TRUE;

   } // else

在Vista下使用SetThreadExecutionState像這樣


// try this for vista, it will fail on XP

if (SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED) == NULL)

{

   // try XP variant as well just to make sure 

   SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);

}  // if 

當您完成應用后,將其恢復為正常


// set state back to normal


查看完整回答
反對 回復 2019-11-29
  • 3 回答
  • 0 關注
  • 1243 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號