2016-05-11 17 views
0

因此,當系統進入連接備用數據庫時,似乎有許多問題詢問如何檢測10,但我期望的是實際上導致它發生以編程方式在C#中輸入連接備用數據庫

原因是,只要在C#中調用SetPowerState(Sleep)方法,如果啓用了連接待機功能,就不再有效(並且不會做任何事情),因此讓系統進入休眠狀態的應用程序不再有效。

注意:我不想叫醒這個系統,我想做相當於點擊開始 - >電源 - >睡眠。

回答

0

這個問題已經在這裏找到答案: https://stackoverflow.com/a/37032188/2277323

不要做:

Process.Start("rundll32.exe", "powrprof.dll,SetSuspendState 0,1,0"); 

,因爲它會調用未定義的行爲,可能使計算機進入休眠狀態來代替。 (謝謝CherryDT)。

+0

我會檢查這一點,但從我的回憶中確切地說,我所說的不適用於支持S0的系統。 – Tsaukpaetra

0

因此......顯然,因爲在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); 
} 

當然,需要有一些代碼,以確定哪些睡眠的方法是適合您的設備,但在別處討論過。

相關問題