精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何阻止電腦進入睡眠或者休眠

CHANBAEK ? 來源:頭條號NCG杰哥 ? 作者:頭條號NCG杰哥 ? 2023-02-28 14:30 ? 次閱讀

通常我們使用電腦過程中會設置多長時間不操作,電腦就會滅屏、睡眠甚至是休眠。 如果電腦進入睡眠或者休眠模式,電腦運行的程序將不再執行。 如果我們設計的桌面程序一直在執行某種操作,比如持續的USB通信,操作人可能會離開很久,這個時候,我們不希望電腦進入睡眠或者休眠模式。 那么該如何實現這一功能呢?

系統中相關接口文件是提供了這一功能,即調用如下方法即可:

[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,
}

如上所示,只需要設置系統狀態即可,ExcutionState各個枚舉變量的含義為:SystemRequired,強行設置系統IDLE計時器,使得系統一直處于工作態; DisplayRequired,通過重置顯示器IDLE計時器,使得顯示器一直處于顯示狀態; Continues,系統狀態維持當前狀態,直到下一次方法調用或者標志位改變。

系統狀態枚舉變量

具體調用方法如下:

// 設置此線程此時開始一直將處于運行狀態,此時計算機不應該進入睡眠狀態。
// 此線程退出后,設置將失效。
// 如果需要恢復,請調用 <"RestoreForCurrentThread"/> 方法。
// 
// 表示是否應該同時保持屏幕不關閉。
// 對于游戲、視頻和演示相關的任務需要保持屏幕不關閉;而對于后臺服務、下載和監控等任務則不需要。
public static void PresentForCurrentThread(bool keepDisplayOn)
{
	SetThreadExecutionState(keepDisplayOn ? (ExecutionState.Continues|ExecutionState.SystemRequired | ExecutionState.DisplayRequired) : (ExecutionState.Continues| ExecutionState.SystemRequired));
}

//恢復此線程的運行狀態,操作系統現在可以正常進入睡眠狀態和關閉屏幕。
public static void RestoreForCurrentThread()
{
	SetThreadExecutionState(ExecutionState.Continues);
}

// 重置系統睡眠或者關閉屏幕的計時器,這樣系統睡眠或者屏幕能夠繼續持續工作設定的超時時間。
// 
// 表示是否應該同時保持屏幕不關閉。
// 對于游戲、視頻和演示相關的任務需要保持屏幕不關閉;而對于后臺服務、下載和監控等任務則不需要。
public static void ResetIdle(bool keepDisplayOn)
{
	SetThreadExecutionState(keepDisplayOn ? (ExecutionState.SystemRequired | ExecutionState.DisplayRequired) : (ExecutionState.SystemRequired));
}

因此,只要調用ResetIdle(true)就可以實現屏幕常亮并且系統運行正常。 如果要取消只要調用RestoreForCurrentThread()即可。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 顯示器
    +關注

    關注

    21

    文章

    4951

    瀏覽量

    139830
  • usb
    usb
    +關注

    關注

    60

    文章

    7900

    瀏覽量

    264010
  • 電腦
    +關注

    關注

    15

    文章

    1680

    瀏覽量

    68680
  • 計時器
    +關注

    關注

    1

    文章

    419

    瀏覽量

    32636
  • 睡眠
    +關注

    關注

    0

    文章

    14

    瀏覽量

    8069
收藏 人收藏

    評論

    相關推薦

    CY8C4045AZI-S413使用外部時鐘 (48MHz) 而不是內部時鐘時可以進入睡眠模式嗎?

    (48MHz),設備能否僅通過執行 cysyspmSleep () API 進入睡眠模式? 或者,如果用戶使用外部時鐘,用戶是否需要進行其他處理? 當外部時鐘為 48MHz 時,您是否有睡眠模式下
    發表于 02-26 06:36

    STM32F103進入睡眠模式或者待機模式或者停機模式,IO腳原先設置的電平值是否會改變?

    STM32F103進入睡眠模式或者待機模式或者停機模式,IO腳原先設置的電平值是否會改變? 鎖定STM32F103的IO腳,那么當 STM32F103進入睡眠模式
    發表于 05-17 09:22

    使用wifi_set_sleep_type設置為light sleep后無法進入休眠怎么解決?

    使用wifi_set_sleep_type設置為light sleep后無法進入休眠,模塊電流一直在80mA左右,(用強制light sleep休眠可以到十幾mA) 手冊說調用wifi_set_sleep_type后“由系統底層
    發表于 07-22 06:12

    WICED 6.0如何進入睡眠模式?

    你好:問題一:在版本5之后,沒有“WiDeDeHalyLPM .h”文件,進入和退出原來的睡眠模式已經無法實現,現在6套睡眠模式的API是哪里?問題二:此外,將睡眠設置在“MyHyAp
    發表于 12-11 14:54

    請問SIM800A進入睡眠模式后進行喚醒有外部引腳進行電平變換進行指示嗎?

    SIM800A進入睡眠模式后進行喚醒有沒有外部引腳進行電平變換進行指示?。?b class='flag-5'>或者在睡眠模式中突然接收到了GPRS信號有沒有外部引腳進行電平變換指示?
    發表于 06-12 04:35

    STM32F429進入睡眠的方式

    睡眠進入睡眠的方式很簡單:只需要調用WFI 或WFE 命令,在睡眠模式中,內核停止,但是所有外設,包括M4 核心的外設均處于工作狀態中。喚醒睡眠的方式:任一中斷;喚醒事件。// Wai
    發表于 08-11 06:38

    筆記本電腦win10連接電源時無法進入睡眠的原因

    筆者的筆記本電腦(win10)一直有一個問題,就是當筆記本連接電源的時候,無法進入睡眠,苦思很久,一直沒找到答案。無論怎么設置電源選項,合蓋子、按電源鍵都沒有睡眠的效果,電腦只是黑屏,
    發表于 12-27 06:01

    進入睡眠模式(Sleep)的條件有哪些

    進入睡眠模式(Sleep)的條件:通過將Mode_Control寄存器(表5)中的MC位設置為01,可以從待機模式或正常模式中選擇睡眠模式。只要沒有待處理的中(引腳INTN =高電平)或喚醒
    發表于 01-17 06:17

    低溫環境CH578M進入睡眠之后立刻死掉怎么解決?

    最近大降溫發現578M進入睡眠之后立刻死掉 電流維持再10MA如果把板子靠近熱源 例如暖手寶這些東西 就能正常睡眠。跑的是ble_uart睡眠歷程。間隙性喚醒休眠。
    發表于 08-16 06:13

    如和讓STM8S與STM8L安全地進入睡眠狀態呢?

    MCU 進入睡眠狀態——當所有標志都被清除時。但我不能簡單地寫:if(!flag1 && !flag2 ...){ go_to_sleep();}因為潛在的競爭條件。可以在 if 語句
    發表于 12-08 06:12

    程序進入睡眠模式設置了定時器中斷為什么不能喚醒睡眠?

    程序進入睡眠模式,設置了定時器中斷為什么不能喚醒睡眠?看了手冊,上面寫的任意中斷都可以喚醒,上面列出來定時器全局中斷可以喚醒,這個全局中斷和定時器的普通中斷(更新中斷,輸入捕獲等)有什么區別嗎?
    發表于 10-19 06:57

    筆記本電腦合上蓋子不進入休眠模式的問題應該如何解決

    重新裝了win7 系統 升級到旗艦版,升級之后發現電腦合上蓋子不進入睡眠模式了,一直運行狀態把電腦的電都耗干了,網上搜索了很多電腦盒蓋的問題,解決方法都是右擊電源圖標的 ’電源選項‘,
    發表于 08-09 17:33 ?0次下載
    筆記本<b class='flag-5'>電腦</b>合上蓋子不<b class='flag-5'>進入</b><b class='flag-5'>休眠</b>模式的問題應該如何解決

    32 系統進入stop模式_如何讓MCU進入睡眠狀態節省能耗?

    我們探討過在每種Arm Cortex-M處理器上可以找到的低功耗模式的基本原理,以及如何使用WFI和WFE指令讓處理器進入睡眠模式。實際上我們真正要了解的是,低功耗模式如何在真正的微控制器上實現
    發表于 11-01 16:08 ?5次下載
    32 系統<b class='flag-5'>進入</b>stop模式_如何讓MCU<b class='flag-5'>進入睡眠</b>狀態節省能耗?

    APM32F103XC_TMR_關閉DMA進入睡眠模式出現故障

    APM32F103XC_TMR_關閉DMA進入睡眠模式出現故障
    發表于 11-09 21:03 ?0次下載
    APM32F103XC_TMR_關閉DMA<b class='flag-5'>進入睡眠</b>模式出現故障

    如何讓MCU進入睡眠狀態節省能耗?

    在我的上一篇文章《ARM Cortex-M低功耗模式基本原理》中,我們探討了在每種Arm Cortex-M處理器上可以找到的低功耗模式的基本原理,以及如何使用WFI和WFE指令讓處理器進入睡眠模式
    的頭像 發表于 08-04 14:27 ?608次閱讀
    如何讓MCU<b class='flag-5'>進入睡眠</b>狀態節省能耗?