电脑休眠怎么停止-(电脑休眠怎么停止运行)
通常我們使用電腦過(guò)程中會(huì)設(shè)置多長(zhǎng)時(shí)間不操作,電腦就會(huì)滅屏、睡眠甚至是休眠。如果電腦進(jìn)入睡眠或者休眠模式,電腦運(yùn)行的程序?qū)⒉辉賵?zhí)行。如果我們?cè)O(shè)計(jì)的桌面程序一直在執(zhí)行某種操作,比如持續(xù)的USB通信,操作人可能會(huì)離開(kāi)很久,這個(gè)時(shí)候,我們不希望電腦進(jìn)入睡眠或者休眠模式。那么該如何實(shí)現(xiàn)這一功能呢?
系統(tǒng)中相關(guān)接口文件是提供了這一功能,即調(diào)用如下方法即可:
[DllImport("kernel32")]private static extern ExecutionState SetThreadExecutionState(ExecutionState esFlags);[Flags]private enum ExecutionState : uint{SystemRequired = 0x01,DisplayRequired = 0x02,[Obsolete("This value is not supported.")]UserPresent = 0x04,AwayModeRequired = 0x40,Continues = 0x80000000,}
如上所示,只需要設(shè)置系統(tǒng)狀態(tài)即可,ExcutionState各個(gè)枚舉變量的含義為:SystemRequired,強(qiáng)行設(shè)置系統(tǒng)IDLE計(jì)時(shí)器,使得系統(tǒng)一直處于工作態(tài);DisplayRequired,通過(guò)重置顯示器IDLE計(jì)時(shí)器,使得顯示器一直處于顯示狀態(tài);Continues,系統(tǒng)狀態(tài)維持當(dāng)前狀態(tài),直到下一次方法調(diào)用或者標(biāo)志位改變。
Microsoft官網(wǎng)參考鏈接為:SetThreadExecutionState function (winbase.h) - Win32 apps | Microsoft Learn

系統(tǒng)狀態(tài)枚舉變量
具體調(diào)用方法如下:
// 設(shè)置此線程此時(shí)開(kāi)始一直將處于運(yùn)行狀態(tài),此時(shí)計(jì)算機(jī)不應(yīng)該進(jìn)入睡眠狀態(tài)。// 此線程退出后,設(shè)置將失效。// 如果需要恢復(fù),請(qǐng)調(diào)用 <"RestoreForCurrentThread"/> 方法。// <param name="keepDisplayOn">// 表示是否應(yīng)該同時(shí)保持屏幕不關(guān)閉。// 對(duì)于游戲、視頻和演示相關(guān)的任務(wù)需要保持屏幕不關(guān)閉;而對(duì)于后臺(tái)服務(wù)、下載和監(jiān)控等任務(wù)則不需要。public static void PresentForCurrentThread(bool keepDisplayOn){SetThreadExecutionState(keepDisplayOn ? (ExecutionState.Continues|ExecutionState.SystemRequired | ExecutionState.DisplayRequired) : (ExecutionState.Continues| ExecutionState.SystemRequired));}//恢復(fù)此線程的運(yùn)行狀態(tài),操作系統(tǒng)現(xiàn)在可以正常進(jìn)入睡眠狀態(tài)和關(guān)閉屏幕。public static void RestoreForCurrentThread(){SetThreadExecutionState(ExecutionState.Continues);}// 重置系統(tǒng)睡眠或者關(guān)閉屏幕的計(jì)時(shí)器,這樣系統(tǒng)睡眠或者屏幕能夠繼續(xù)持續(xù)工作設(shè)定的超時(shí)時(shí)間。// <param name="keepDisplayOn">// 表示是否應(yīng)該同時(shí)保持屏幕不關(guān)閉。// 對(duì)于游戲、視頻和演示相關(guān)的任務(wù)需要保持屏幕不關(guān)閉;而對(duì)于后臺(tái)服務(wù)、下載和監(jiān)控等任務(wù)則不需要。public static void ResetIdle(bool keepDisplayOn){SetThreadExecutionState(keepDisplayOn ? (ExecutionState.SystemRequired | ExecutionState.DisplayRequired) : (ExecutionState.SystemRequired));}
因此,只要調(diào)用ResetIdle(true)就可以實(shí)現(xiàn)屏幕常亮并且系統(tǒng)運(yùn)行正常。如果要取消只要調(diào)用RestoreForCurrentThread()即可。
總結(jié)
以上是生活随笔為你收集整理的电脑休眠怎么停止-(电脑休眠怎么停止运行)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: u盘装系统如何进入u盘-(u盘装系统如何
- 下一篇: 显示不出u盘没反应-(显示不出u盘没反应