컴퓨터를 절전 모드로 전환하는 데 사용하는 명령은 무엇입니까 (최대 절전 모드가 아닌)?


63

명령 줄을 통해 내 Windows PC (Windows 7)를 절전 모드로 전환하려고합니다. 그래서 키보드의 매크로 단추에 바인딩 할 수 있습니다.

PC의 전원 버튼은 설정되지만 컴퓨터는 잠자기 상태가됩니다 (바닥에 내려 놓고 너무 게으르므로 게으 르기 만하면됩니다). 내가 원하는대로 정확히 작동합니다 (느슨한 경우 하이브리드 모드를 사용하여 잠자기합니다)

종료 메뉴의 절전 모드 명령도 작동합니다.

내가 찾은 대부분의 정보는 사용하는 것을 말한다.

%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0

그러나 이로 인해 컴퓨터가 최대 절전 모드로 전환됩니다. 하이버 네이트는 사용하지 않지만 하이브리드 수면을 사용합니다.

따라서 컴퓨터를 절전 모드로 전환하는 데 사용하는 명령은 무엇입니까 (최대 절전 모드가 아닌)?


5
rundll32.exe PowrProf.dll,SetSuspendState권장하지 않습니다. 위험 해요. (그것은 않는이, 스택 손상 때문에 하지 함수 서명을 준수 요구 에 의해 Rundll32. 레이몬드 첸 그런 다음 예측할 수없는 나쁜 일이 발생할 수 있습니다 경고 ...)
아론 토마스에게

...

답변:


13

해결책을 찾았습니다. AutoHotKey라는 프리웨어 프로그램을 설치하고 시작 메뉴 -> 절전 모드를 스크립트 파일에 호출하는 단계를 기록했습니다. 그런 다음 스크립트 파일을 독립 실행 형 SleepWin7.exe 실행 파일로 작성했습니다.

이제 SleepWin7.exe를 실행하여 내 컴퓨터를 하이브리드 절전 모드로 전환합니다.

필요한 경우 AutoHotKey를 제거 할 수 있습니다.


업데이트 : 위의 솔루션은 사용자가 로그인하지 않은 경우 작동하지 않습니다. 즉 Windows 7 로그인 화면. (매주 일요일 오전 4시에 컴퓨터가 깨어나 주간 백업을 수행합니다.이 경우 사용자 로그인없이 완료됩니다.) 그런 경우 에도 Wizmo 프로그램은 계속 작동합니다.

wizmo.exe 조용한 대기!


3
다음은 AutoHotKey 스크립트입니다 (키보드 사용). 시작, 메뉴, WinActivate, 시작 메뉴, WinWaitActive, 시작 메뉴, 보내기, {TAB} {UP} {RIGHT} s
에릭 L

이것이 제가 사용을 끝낸 해결책입니다. 그것은 하이브리드 수면을 지원합니다.
Eric L

+1이 느낌은 더럽지 만 작동합니다. 마지막으로 Send 부분을 "Send, {RIGHT} {Right} s"로 변경해야했습니다. BTW 나는 거의 그 용서 :) 것 같이 AHK를 제거 추천 당신에게 -1을 준
demoncodemonkey

또한 명령이 바탕 화면 창으로 이동 확인하고이를 방지하기 위해 스크립트의 시작이 추가 길을 잃지 : WinActivate을 Progman ahk_class의 정확한
demoncodemonkey

1
Windows 8로 전환 한 후 지금은 NirCmd (매우 가벼운 무게)를 사용하고 있으며 컴퓨터를 하이브리드 절전 모드로 전환합니다. nircmd.exe standby자세한 정보는 여기에서 찾을 수 있습니다 -> nirsoft.net/utils/nircmd.html
Eric L

72

희망이 당신이 유용하다고 생각합니다.

일시 휴업 %windir%\System32\shutdown.exe -s

재부팅 %windir%\System32\shutdown.exe -r

로그 오프 %windir%\System32\shutdown.exe -l

대기 %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby

최대 절전 모드 %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate

주의 : rundll32.exe를 사용하여 powerprof.dll을 시작하면 안됩니다 . 대신 SetSuspendState를 직접 호출해야합니다. 이것은 Powershell을 사용하여 수행 할 수 있습니다 - 아래 내용으로 sleep.ps1과 같은 파일을 생성하십시오.

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

그런 다음을 사용하여 실행하십시오 powershell -File C:\your-path\sleep.ps1. Set-ExecutionPolicy RemoteSignedPowerShell 스크립트를 실행 하려면 먼저 명령을 실행해야 합니다.

위의 스크립트는 현재 최대 절전 모드 설정에 따라 절전 모드 또는 최대 절전 모드로 전환되는 시스템 일시 중단을 발생시킵니다. 명령 줄에서 해당 설정을 변경하려면 관리자 권한으로 명령 줄에서 powercfg -h off(또는 on)을 실행 하십시오.


4
우와! +1 ...
studiohack

9
이것은 훌륭하지만 Sleeeeeeeeeeeeep의 경우는 어디 있습니까?
demoncodemonkey 2011/04/22

7
대기 모드 바로 가기로 내 Win7 컴퓨터를 최대 절전 모드로 전환합니다. (
user)

5
@ demoncodemonkey : Standbyyyyyyyyyyyy = Sleeeeeeeeeeeeep :)
Răzvan Flavius ​​Panda

11
분명히 그렇지 않습니다 : superuser.com/a/331545/21887 이 방법을 사용하는 것은 위험한 것으로 간주되며 권장되지 않습니다. (스택
Aaron Thoma

16

많은 것들을 할 수있는 Wizmo 의 무료 유틸리티를 보십시오 .
찾고있는 명령은 아마도 다음과 같습니다.

wizmo 대기


Wizmo는 꽤 근사해 보인다! 거의 내가 내가 맥 팬이 아니
었으면 좋겠어.

이 유틸리티는 설치할 필요가 없습니다. 좋은 간단한 도구.
Artur Carvalho

2
wizmo.exe quiet standby틀림없이 짜증나는 경고음을 억제합니다 wizmo.exe.
Aaron Thoma

14

"sleep.ps1"과 같은 확장자 .ps1 (powershell)을 가진 파일을 생성하고 다음과 같이 작성할 수 있습니다 :

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

내가 뭔가를 실행하고 PC를 떠나야 할 때 이것을 사용하고 그것을 끄고 싶지 않아요. 따라서 스크립트를 다음과 같이 변경합니다.

$minutes = read-host "Enter minutes to wait until sleep";
$secs= 60*$minutes;
Start-sleep -s $secs

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

그리고 지금 내가 그것을 실행할 때, 나는 단지 내가 잠들 때까지 기다리고 싶은 분을 입력한다.

당신은 작성하여 cmd 라인에서 이것을 실행할 수 있습니다.

powershell -File C:\your-path\sleep.ps1

이전에 PowerShell 스크립트를 실행 한 적이 없다면 먼저 실행해야합니다.

Set-ExecutionPolicy RemoteSigned

PowerShell에서 스크립트 실행을 가능하게합니다. 이 작업은 한 번만 실행하면됩니다.


변수 이름이 거꾸로 있지 않습니까?
Ullallulloo


7

나는이 SLEEP.EXE 유틸리티를 오랫동안 사용해 왔습니다. 잘 작동하고 정지 모드 ( "sleep"의 기본 형식)에 대해 제공 할 인수를 기억할 필요가 없습니다.


SLEEP.EXE 는 Windows 7 Pro SP1에서 작동합니다. 상위 페이지에는 Windows 용 유용한 명령 줄 도구도 많이 나와 있습니다. 고마워, @jjlin!
CODE-REaD

6

최대 절전 모드를 해제하려면 사용해야합니다.

powercfg -h off

이제 rundll32 powrprof.dll, SetSuspendState 가 스테이션을 대기 모드로 전환합니다.

[편집하다]

사실 하이브리드 대기 모드를 설정할 수 없다. 하이브리드 모드를 사용하려면 하이버네이션을 사용하고 rundll32 powrprof.dll, SetSuspendState가 기본 절전 모드로 전환해야한다고 가정 할 때, 랩톱 (모바일 스테이션에서는 사용할 수없는 상태)이 필요하다. 모드에서 제어판의 \ 전원 관리 설정을 클릭합니다. rundll32 powrprof.dll, SetSuspendState hybrid sleep 이 약간의 결과를 주면 시도해보십시오 .


이것은 또한 하이브리드 잠을하지 않습니다, 그래서 좀 목적을 패배
에릭 L에게

rundll32 powrprof.dll, SetSuspendState 하이브리드 절전 모드로 컴퓨터를 최대 절전 모드로 전환합니다. 아이디어에 감사드립니다.
에릭 L

rundll32는 SetSuspendState를 호출하도록 설계되지 않았기 때문에 매개 변수 값이 잘못되었습니다. 그것이 의도적으로 장애를 해제하지 않은 경우 항상 최대 절전 모드가되는 이유입니다.
SergeyT

5

박쥐 파일을 만드십시오. 여기서 600은 초 단위로 지연됩니다.

ping -n 600 -w 1 127.0.0.1> nul

powercfg -h 꺼짐

% windir % \ System32 \ rundll32.exe powrprof.dll, SetSuspendState 대기 모드


컴퓨터를 수면에 놓을 수있는 좋은 방법이며, 수면을 취하고 자하는 사람을 아주 쉽게 보낼 수 있습니다.
Maurycy 2011 년

창조적 인 대답!
Jane Panda

rundll32.exe를 사용하여 SetSuspendState를 호출하지 마십시오.이를 위해 설계되지 않았습니다. 여기에
SergeyT

4

.NET 프로그램을 컴파일하는 데 유능한 사람이라면 다음 명령 을 사용하십시오.

System.Windows.Forms.Application.SetSuspendState(PowerState.Suspend, 
                                                 false,   /* force */
                                                 true     /* disableWake */);

주 :rundll32 powrprof.dll,SetSuspendState 명령에 필요한 최대 절전 모드를 비활성화 할 필요는 없습니다 . PowerState.Hibernate원하는 경우 컴퓨터를 최대 절전 모드로 전환 할 수도 있습니다 .

모든 버전의 Visual Studio 에서이 명령을 사용하여 EXE를 쉽게 컴파일 할 수 있습니다 . 콘솔 응용 프로그램을 만들고 System.Windows.FormsDLL에 대한 참조를 추가하기 만하면 됩니다.


1
위에 인용 된 Wizmo는 기본적으로 이미 이것을 수행했습니다. 그리고 그것은 스티브 깁슨과 자유에 의해 쓰여졌습니다. 아마 똑같은 것을 코딩하는 것보다 더 좋을 것입니다!
stevemidgley 2011 년

+1. 이와 비슷한 것을 찾으
user

Visual Studio컴파일 할 필요조차 없습니다 . 대신 명령 줄 컴파일러를 csc.exe사용할 수 있습니다. Windows의 모든 최신 버전에 이미 설치되어 있습니다.
SergeyT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.