因此,當系統進入連接備用數據庫時,似乎有許多問題詢問如何檢測10,但我期望的是實際上導致它發生。以編程方式在C#中輸入連接備用數據庫
原因是,只要在C#中調用SetPowerState(Sleep)
方法,如果啓用了連接待機功能,就不再有效(並且不會做任何事情),因此讓系統進入休眠狀態的應用程序不再有效。
注意:我不想叫醒這個系統,我想做相當於點擊開始 - >電源 - >睡眠。
因此,當系統進入連接備用數據庫時,似乎有許多問題詢問如何檢測10,但我期望的是實際上導致它發生。以編程方式在C#中輸入連接備用數據庫
原因是,只要在C#中調用SetPowerState(Sleep)
方法,如果啓用了連接待機功能,就不再有效(並且不會做任何事情),因此讓系統進入休眠狀態的應用程序不再有效。
注意:我不想叫醒這個系統,我想做相當於點擊開始 - >電源 - >睡眠。
這個問題已經在這裏找到答案: https://stackoverflow.com/a/37032188/2277323
不要做:
Process.Start("rundll32.exe", "powrprof.dll,SetSuspendState 0,1,0");
,因爲它會調用未定義的行爲,可能使計算機進入休眠狀態來代替。 (謝謝CherryDT)。
因此......顯然,因爲在S0低功耗空閒時沒有「睡眠」,所以傳統的讓電腦進入睡眠狀態的方法不起作用:該選項不可用。
基本上,電源菜單中的睡眠命令只是關閉顯示屏,觸發連接待機的其餘部分。
所以,現有的代碼告訴顯示屏關閉將達到同樣的影響,像這樣的東西:
[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
void doStandby()
{
//Turn off the monitor
SendMessage(0xFFFF,0x112,0xF170,2);
}
當然,需要有一些代碼,以確定哪些睡眠的方法是適合您的設備,但在別處討論過。
我會檢查這一點,但從我的回憶中確切地說,我所說的不適用於支持S0的系統。 – Tsaukpaetra