私は自分のWindows PC(Windows 7)をコマンドラインでスリープ状態にしたい(だからキーボードのマクロボタンにバインドできる)。
PCの電源ボタンはコンピュータがスリープ状態になるように設定されています(ただし床に倒れていて手を伸ばすのが面倒です)
シャットダウンメニューのsleepコマンドも機能します。
私が見つけたほとんどの情報は使うように言う。
%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0
しかしこれはコンピュータを休止状態モードにします。休止状態を無効にしていますが、ハイブリッドスリープを使用しています。
では、コンピュータをスリープ状態にするためのコマンドは何ですか(休止状態ではありません)。
解決策を見つけました。 AutoHotKeyというフリーウェアプログラムをインストールし、スタートメニュー - >スリープを起動する手順をスクリプトファイルに記録しました。それから私はそのスクリプトファイルをスタンドアロンの実行ファイルSleepWin7.exeにコンパイルしました。
今私は単にSleepWin7.exeを実行してコンピュータをハイブリッドスリープ状態にします。
これだけで十分な場合は、AutoHotKeyをアンインストールしてもかまいません。
更新:ユーザーがログインしていないとき、すなわちWindows 7のログイン画面では上記の解決策は機能しません。 (私のコンピュータは毎週日曜日の午前4時に起きて毎週のバックアップを実行します。これはユーザーのログインなしで行われます。)そのような場合、 Wizmo プログラムはまだ動作します。
wizmo.exe静かなスタンバイ!
これらが役に立つことを願っています。
シャットダウン%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
)を実行します。
Wizmo の無料のユーティリティを参照してください。これは非常に多くのことができます。
探しているコマンドはおそらく以下のとおりです。
ウィズモスタンバイ
"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でスクリプト実行を有効にします。これは一度だけ実行する必要があります。
Sysinternals PsTools[ download ]の場合:
psshutdown -d
コマンドラインツールを使用する PsShutdown 。
(PsToolsを既にダウンロードしている場合は、この方法をお勧めします。それ以外は広く使用されています。それ以外は、 wizmo
quiet standby
を使用するのと同じです。)
私は何年もこの SLEEP.EXE ユーティリティを使っています。それはうまく機能します、そしてあなたはそれをサスペンドモードに与えるためにどんな引数を覚えておく必要はありません( "デフォルトの"形式 "sleep")。
休止状態モードを無効にするには、使用する必要があります
powercfg -h off
さて、rundll32 powrprof.dll、SetSuspendStateはあなたのステーションをスタンバイモードにします。
[編集]
ラップトップ(モバイルステーションでは利用できない状態)を使用しているため、実際にはハイブリッドスリープを設定できません。ハイブリッドスリープを有効にする必要があります。コントロールパネル\電源管理設定でモードを選択してください。 rundll32 powrprof.dll、SetSuspendStateハイブリッドスリープで何らかの結果が得られた場合は試してください。
600が秒単位の遅延であるbatファイルを作成します。
ping -n 600 -w 1 127.0.0.1> nul
powercfg -hオフ
%windir%\ System32\rundll32.exe powrprof.dll、SetSuspendStateスタンバイ
あなたが.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への参照を追加するだけです。