SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(
SystemEvents_PowerModeChanged
);
當Windows掛起告訴。但是,我怎麼知道它是進入休眠還是暫停?
是否有.Net或PInvoke方法來做到這一點?
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(
SystemEvents_PowerModeChanged
);
當Windows掛起告訴。但是,我怎麼知道它是進入休眠還是暫停?
是否有.Net或PInvoke方法來做到這一點?
你不能告訴Hibernate之間的區別,並暫停。
詳細討論here。
外賣消息是,你的問題預設假二分法:它可以是休眠,暫停或混合睡眠......當混合睡眠從掛起轉換到休眠用戶代碼甚至不運行(實際上可能有無代碼運行,過渡發生在斷電的情況下)。
因此,當混合睡眠的決定發生時,系統不知道它是否會從暫停或休眠狀態恢復,並且它不能告訴你它不知道什麼。
根據MSDN,e.Mode(您的事件處理函數應具有第二個參數PowerChangedEventArgs
e)的值將是「Resume」,「StatusChange」或「Suspend」之一的枚舉。但是,它似乎沒有提供比這更詳細的信息,所以假設如果狀態爲掛起,則PC正在休眠或休眠。
HTH,
本傑明