How to initiate standby/sleep from command-line?
Asked Answered
R

4

6

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

Rockweed answered 15/6, 2011 at 0:58 Comment(3)
In which cases does that command not put the computer to sleep?Myer
In my case, at least :P Well, it puts it into hibernation just like shutdown -h. I want the same kind of sleep as i get when i use the start-menu -> sleep.Rockweed
Did you look at this: superuser.com/questions/42124/… (The second answer.) You could turn off hibernation temporarily, then turn it back on upon awakening...Myer
R
8

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

Rockweed answered 15/6, 2011 at 22:26 Comment(0)
V
1

STANDBY (SLEEP) with CMD (command prompt or .bat), doesnt work in Windows 10.

Use QUICK SLEEPER.

Vivacity answered 28/5, 2013 at 6:53 Comment(0)
B
0

Use

^!Numpad9::DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)
^!Numpad8::DllCall("PowrProf\SetSuspendState", "int", 1, "int", 0, "int", 0)

in AutoHotkey. You'd then have to press Ctrl+Alt+Numpad9. Ctrl+Alt+Numpad8 is for putting it into hibernation mode.

Bodgie answered 20/11, 2011 at 16:2 Comment(0)
C
0

Tried and tested NirCMd (useful for many things) has both a Standby (sleep) and Hibernate command: https://nircmd.nirsoft.net/standby.html Likely does some of the above for you.

Choppy answered 24/7, 2020 at 7:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.