How to initiate standby/sleep from command-line?

Araho picture Araho · Jun 15, 2011 · Viewed 22.9k times · Source

I have found a lot of info about how to shut down computer, put it in hibernation etc via the command line, however, any tips i have read about getting it to sleep as it does from the start-menu has so far not worked properly.

I would like a command that puts the computer in a light standby mode where a keypress would make the computer wake again, and not in hibernation. Does anyone know of this?

AFAIK, rundll32.exe powrprof.dll,SetSuspendState 0,1,0 does NOT put the computer to sleep / standby in all cases, and is as such not appropriate for my use...

Thanks, Araho

Answer

Araho picture Araho · Jun 16, 2011

Thanks to @minitech, I finally got it working. Leaving this here for all who want to know the answer, and giving two examples, one in direct command-line and one in Visual C#:

Add elevated priveleges to your app:

  • In other words, in command-line, start it as Administrator.
  • In Visual C#, which is what I'm using, add a manifest file to the project, and edit the "requestedExecutionLevel"-element to the following:

Then run the following commands:

  • In commandline:

    1. "powercfg -hibernate off" - This shuts off the hibernation mode possibility.

    2. rundll32.exe powrprof.dll,SetSuspendState 0,1,0 - This makes the computer sleep.

    3. powercfg -hibernate on - This allows the hibernation mode to again be activated.

  • In Visual C#, use the following code:

    1. System.Diagnostics.Process.Start("powercfg", "-hibernate off"); // Turn off hibernation mode setting.

    2. System.Diagnostics.Process.Start("rundll32.exe", "powrprof.dll,SetSuspendState 0,1,0"); // Send the computer to sleep

    3. System.Diagnostics.Process.Start("powercfg", "-hibernate on"); // Turn on hibernation mode setting after waking computer.

It is very important to remember to add Administrator priveleges, or it will make the computer hibernate, which takes forever.

Araho