最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)系統(tǒng)休眠或靜止休眠的方法

 更新時(shí)間:2023年05月22日 11:30:36   作者:叫我少年  
這篇文章主要介紹了C#實(shí)現(xiàn)系統(tǒng)休眠或靜止休眠的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

封裝類

用于阻止系統(tǒng)休眠的C#類。以下是代碼注釋的解釋:

  • DllImport("kernel32.dll"):定義了一個(gè)API函數(shù),該函數(shù)在Windows內(nèi)核中定義。
  • enum ExecutionFlag : uint:定義了一個(gè)枚舉類型,其中包含三個(gè)標(biāo)志,分別用于阻止系統(tǒng)休眠、關(guān)閉顯示器和繼續(xù)執(zhí)行。
  • PreventSleep(bool includeDisplay = false):這個(gè)方法用于阻止系統(tǒng)休眠,直到線程結(jié)束恢復(fù)休眠。如果includeDisplay參數(shù)為true,則還會(huì)阻止關(guān)閉顯示器。
  • ResotreSleep():這個(gè)方法用于恢復(fù)系統(tǒng)休眠。

使用了kernel32.dll中的SetThreadExecutionState函數(shù)來阻止系統(tǒng)休眠。我們還定義了一個(gè)枚舉類型ExecutionFlag,用于指定阻止系統(tǒng)休眠的選項(xiàng)。我們可以使用SetThreadExecutionState函數(shù)來設(shè)置ExecutionFlag標(biāo)志,以防止系統(tǒng)休眠

class SystemSleepManagement
   {
       //定義API函數(shù)
       [DllImport("kernel32.dll")]
       static extern uint SetThreadExecutionState(ExecutionFlag flags);
       [Flags]
       enum ExecutionFlag : uint
       {
           System = 0x00000001,
           Display = 0x00000002,
           Continus = 0x80000000,
       }
       /// <summary>
       ///阻止系統(tǒng)休眠,直到線程結(jié)束恢復(fù)休眠
       /// </summary>
       /// <param name="includeDisplay">是否阻止關(guān)閉顯示器</param>
       public static void PreventSleep(bool includeDisplay = false)
       {
           if (includeDisplay)
               SetThreadExecutionState(ExecutionFlag.System | ExecutionFlag.Display | ExecutionFlag.Continus);
           else
               SetThreadExecutionState(ExecutionFlag.System | ExecutionFlag.Continus);
       }
       /// <summary>
       ///恢復(fù)系統(tǒng)休眠
       /// </summary>
       public static void ResotreSleep()
       {
           SetThreadExecutionState(ExecutionFlag.Continus);
       }
       /// <summary>
       ///重置系統(tǒng)休眠計(jì)時(shí)器
       /// </summary>
       /// <param name="includeDisplay">是否阻止關(guān)閉顯示器</param>
       public static void ResetSleepTimer(bool includeDisplay = false)
       {
           if (includeDisplay)
               SetThreadExecutionState(ExecutionFlag.System | ExecutionFlag.Display);
           else
               SetThreadExecutionState(ExecutionFlag.System);
       }
   }

因此,要實(shí)現(xiàn)下載時(shí)阻止程序休眠,則有兩種實(shí)現(xiàn)方式:

  • 下載期間起計(jì)時(shí)器定期執(zhí)行ResetSleepTimer函數(shù)
  • 下載開始時(shí)執(zhí)行PreventSleep函數(shù),下載結(jié)束后執(zhí)行ResotreSleep函數(shù)。
  • 另外,和阻止系統(tǒng)休眠類似,有的程序還需要有阻止屏保功能。

到此這篇關(guān)于C#實(shí)現(xiàn)系統(tǒng)休眠或靜止休眠的文章就介紹到這了,更多相關(guān)c#系統(tǒng)休眠內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#使用CryptoStream類加密和解密字符串的實(shí)現(xiàn)

    C#使用CryptoStream類加密和解密字符串的實(shí)現(xiàn)

    CryptoStream設(shè)計(jì)用于在內(nèi)容以流的形式輸出到文件時(shí)加密和解密內(nèi)容,本文主要介紹了C#使用CryptoStream類加密和解密字符串的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • C#判斷一個(gè)矩陣是否為對(duì)稱矩陣及反稱矩陣的方法

    C#判斷一個(gè)矩陣是否為對(duì)稱矩陣及反稱矩陣的方法

    這篇文章主要介紹了C#判斷一個(gè)矩陣是否為對(duì)稱矩陣及反稱矩陣的方法,涉及C#矩陣遍歷及檢查等相關(guān)運(yùn)算技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#使用DataSet Datatable更新數(shù)據(jù)庫的三種實(shí)現(xiàn)方法

    C#使用DataSet Datatable更新數(shù)據(jù)庫的三種實(shí)現(xiàn)方法

    這篇文章主要介紹了C#使用DataSet Datatable更新數(shù)據(jù)庫的三種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-08-08
  • C# using三種使用方法

    C# using三種使用方法

    這篇文章主要為大家詳細(xì)介紹了C# using三種使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 深入理解C# 委托與事件

    深入理解C# 委托與事件

    本文主要介紹了深入理解C# 委托與事件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2008-05-05
  • C#中互操作性簡(jiǎn)介

    C#中互操作性簡(jiǎn)介

    這篇文章主要介紹了C#中互操作性的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#文件和字節(jié)流的轉(zhuǎn)換方法

    C#文件和字節(jié)流的轉(zhuǎn)換方法

    這篇文章主要介紹了C#文件和字節(jié)流的轉(zhuǎn)換方法,涉及C#將文件以字節(jié)流形式讀取及將字節(jié)流寫入文件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Unity Shader實(shí)現(xiàn)裁切效果

    Unity Shader實(shí)現(xiàn)裁切效果

    這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)裁切效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#中foreach語句使用break暫停遍歷的方法

    C#中foreach語句使用break暫停遍歷的方法

    這篇文章主要介紹了C#中foreach語句使用break暫停遍歷的方法,涉及C#中break語句跳出foreach循環(huán)的使用技巧,非常具有實(shí)用價(jià)值,是C#初學(xué)者必須掌握的重要技巧,需要的朋友可以參考下
    2015-04-04
  • 不能在子類或外部類發(fā)布C#事件代碼分析

    不能在子類或外部類發(fā)布C#事件代碼分析

    一個(gè)朋友問了一個(gè)問題:“為什么不能在子類或外部發(fā)布C#事件?”,我說我不知道,要看看生產(chǎn)的IL代碼,下面我們看看
    2013-11-11

最新評(píng)論

酒泉市| 珠海市| 房山区| 科技| 乐山市| 邵武市| 玛曲县| 连城县| 武邑县| 和顺县| 宝应县| 东阿县| 南投县| 鄱阳县| 嘉义县| 井研县| 新化县| 固始县| 武威市| 绥棱县| 大洼县| 石台县| 鹤岗市| 英吉沙县| 临清市| 昌吉市| 崇礼县| 榆树市| 崇文区| 宜兴市| 南岸区| 万源市| 安乡县| 夏津县| 阿勒泰市| 商河县| 青海省| 钟山县| 随州市| 阿拉尔市| 湖口县|