C#让pc睡眠或休眠

San*_*sal 24 c# sleep hibernate

我想将我的系统置于睡眠或休眠状态,两种不同的选择.

我如何使用API​​执行此操作,我真的不想使用Process,这不允许我选择我想要的操作方法.

fre*_*e0n 49

// Hibernate
Application.SetSuspendState(PowerState.Hibernate, true, true);
// Standby
Application.SetSuspendState(PowerState.Suspend, true, true);
Run Code Online (Sandbox Code Playgroud)

或者,如果您喜欢系统调用:

[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);
Run Code Online (Sandbox Code Playgroud)

  • 那么如何在Windows 8中做到这一点? (4认同)
  • 如果有人正在搜索它并且没有使用WinForms,则"Application"位于System.Windows.Forms命名空间中.只需要甜蜜地导入引用和所有工作(至少在Win7上). (4认同)
  • @HockeyJ 我认为使用 P/Invoke/DLL 可能比导入整个 WinForms 命名空间更好;如果您需要在 WPF 解决方案中使用它。 (2认同)