2010-01-17 10 views
24

Ich möchte mein System entweder schlafen oder Winterschlaf, zwei verschiedene Optionen.C# setzen PC in den Ruhezustand oder Ruhezustand

Wie würde ich dies mit APIs tun, ich möchte nicht wirklich Prozess verwenden, und das erlaubt mir nicht zu wählen, welche Methode ich für diese Aktion möchte.

+0

Sie können alle Informationen, die Sie in diesem [link] benötigen finden (http://www.geekpedia.com/tutorial177_Lock-Stand-By -Hibernate-and-Log-Off.html) zum Sperren des PCs, Standby-Modus, Ruhezustand und Abmelden. – Alex

+0

Danke, ich brauchte auch den Sperrcode. –

Antwort

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

Oder, wenn Sie solches System nennt:

[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

Danke, sehr informativ und hilfreich. –

+4

Also wie geht das in Windows 8? –

+0

@ fre0n Es löst das Ereignis PowerModeChanged nicht aus, wenn das System aufgerufen wurde. – prabhakaran