2010-01-17 55 views
24

我想把我的系統睡覺或冬眠,兩個不同的選項。C#把電腦睡覺或休眠

我該如何使用API​​來做到這一點,我真的不想使用過程,並且不允許我選擇我想要的操作方法。

+0

你可以找到在此[鏈接]需要的所有信息(http://www.geekpedia.com/tutorial177_Lock-Stand-By -Hibernate-and-Log-Off.html)用於鎖定PC,待機模式,休眠和註銷。 – Alex 2010-01-17 03:06:43

+0

謝謝,我還需要鎖PC代碼。 – 2010-01-17 15:08:08

回答

48
// Hibernate 
Application.SetSuspendState(PowerState.Hibernate, true, true); 
// Standby 
Application.SetSuspendState(PowerState.Suspend, true, true); 

或者,如果你喜歡的系統調用:

[DllImport("Powrprof.dll", CharSet=CharSet.Auto, ExactSpelling=true)] 
public static extern bool SetSuspendState(bool hiberate, bool forceCritical, bool disableWakeEvent); 

// Hibernate 
SetSuspendState(true, true, true); 
// Standby 
SetSuspendState(false, true, true); 
+0

謝謝,非常豐富和有益的。 – 2010-01-17 15:07:30

+4

那麼如何在Windows 8中做到這一點? – 2013-01-31 19:53:42

+0

@ fre0n當系統被調用時它不會觸發事件PowerModeChanged。 – prabhakaran 2013-10-10 08:27:09