web-dev-qa-db-ja.com

コンピュータをスリープ状態(休止状態ではない状態)にするのに使用するコマンドは何ですか?

私は自分のWindows PC(Windows 7)をコマンドラインでスリープ状態にしたい(だからキーボードのマクロボタンにバインドできる)。

PCの電源ボタンはコンピュータがスリープ状態になるように設定されています(ただし床に倒れていて手を伸ばすのが面倒です)

シャットダウンメニューのsleepコマンドも機能します。

私が見つけたほとんどの情報は使うように言う。

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

しかしこれはコンピュータを休止状態モードにします。休止状態を無効にしていますが、ハイブリッドスリープを使用しています。

では、コンピュータをスリープ状態にするためのコマンドは何ですか(休止状態ではありません)。

63
Eric L

解決策を見つけました。 AutoHotKeyというフリーウェアプログラムをインストールし、スタートメニュー - >スリープを起動する手順をスクリプトファイルに記録しました。それから私はそのスクリプトファイルをスタンドアロンの実行ファイルSleepWin7.exeにコンパイルしました。

今私は単にSleepWin7.exeを実行してコンピュータをハイブリッドスリープ状態にします。

これだけで十分な場合は、AutoHotKeyをアンインストールしてもかまいません。


更新:ユーザーがログインしていないとき、すなわちWindows 7のログイン画面では上記の解決策は機能しません。 (私のコンピュータは毎週日曜日の午前4時に起きて毎週のバックアップを実行します。これはユーザーのログインなしで行われます。)そのような場合、 Wizmo プログラムはまだ動作します。

wizmo.exe静かなスタンバイ!

13
Andy Lee

これらが役に立つことを願っています。

シャットダウン%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を使って実行します。 PowerShellスクリプトを実行できるようにするには、最初にコマンドSet-ExecutionPolicy RemoteSignedを実行する必要があります。

上記のスクリプトはシステムを一時停止させます。現在の休止状態の設定に応じて、スリープまたは休止状態になります。コマンドラインからその設定を変更するには、管理者としてコマンドラインからpowercfg -h off(またはon)を実行します。

72
imoatama

Wizmo の無料のユーティリティを参照してください。これは非常に多くのことができます。
探しているコマンドはおそらく以下のとおりです。

ウィズモスタンバイ

15
harrymc

"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でスクリプト実行を有効にします。これは一度だけ実行する必要があります。

14
Artur Carvalho

Sysinternals PsTools[ download ]の場合:

psshutdown -d

コマンドラインツールを使用する PsShutdown

(PsToolsを既にダウンロードしている場合は、この方法をお勧めします。それ以外は広く使用されています。それ以外は、 wizmoquiet standbyを使用するのと同じです。)

出典: https://superuser.com/a/331545/21887

11
Aaron Thoma

私は何年もこの SLEEP.EXE ユーティリティを使っています。それはうまく機能します、そしてあなたはそれをサスペンドモードに与えるためにどんな引数を覚えておく必要はありません( "デフォルトの"形式 "sleep")。

7
jjlin

休止状態モードを無効にするには、使用する必要があります

powercfg -h off

さて、rundll32 powrprof.dll、SetSuspendStateはあなたのステーションをスタンバイモードにします。

[編集]

ラップトップ(モバイルステーションでは利用できない状態)を使用しているため、実際にはハイブリッドスリープを設定できません。ハイブリッドスリープを有効にする必要があります。コントロールパネル\電源管理設定でモードを選択してください。 rundll32 powrprof.dll、SetSuspendStateハイブリッドスリープで何らかの結果が得られた場合は試してください。

6
user8228

600が秒単位の遅延であるbatファイルを作成します。

ping -n 600 -w 1 127.0.0.1> nul

powercfg -hオフ

%windir%\ System32\rundll32.exe powrprof.dll、SetSuspendStateスタンバイ

5
dim77x

あなたが.NETプログラムをコンパイルすることに才能があるならば、次の コマンド はこれをするでしょう

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

注:rundll32 powrprof.dll,SetSuspendStateコマンドで要求されているように、休止状態を無効にする必要はありません。必要に応じてPowerState.Hibernateを使ってマシンを休止状態にすることもできます。

このコマンドを使用して、あらゆるバージョンの Visual Studio でEXEを簡単にコンパイルできます。コンソールアプリケーションを作成してSystem.Windows.Forms DLLへの参照を追加するだけです。

4
Simon