一定時間後にコンピューターをスリープさせるバッチファイルを作成したい。
私が見つけた最も近いものはスタンバイに配置することですが、キーボードのスリープボタンとは異なる動作をするようです(長い起動時間、マウスクリックで起動しません)。何か案は?PythonまたはC#の方が簡単ですか?
上記の理想的ではない手法は、cmdプロンプトでこれを呼び出すことです。
Rundll32.exe powrprof.dll,SetSuspendState
一定時間後にコンピューターをスリープさせるバッチファイルを作成したい。
私が見つけた最も近いものはスタンバイに配置することですが、キーボードのスリープボタンとは異なる動作をするようです(長い起動時間、マウスクリックで起動しません)。何か案は?PythonまたはC#の方が簡単ですか?
上記の理想的ではない手法は、cmdプロンプトでこれを呼び出すことです。
Rundll32.exe powrprof.dll,SetSuspendState
回答:
単にコマンド
rundll32.exe powrprof.dll,SetSuspendState
システムが休止状態になりますが、これを書くと:
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
そして、オフのコマンドで休止状態を:
powercfg -hibernate off
これでシステムはスリープ状態になり、デバイスを選択するとマウスの動きで起動します(スクロールして方法を確認します)。
タイマーをバッチ処理する:
timeout /t 1200
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
どこ1200は、 sleepコマンドを実行します20分のバッチ後の平均秒、です。
オプションで、カウントダウンのキャンセルを防ぐことができます(バッチウィンドウでいずれかのキーを押した場合)。
timeout /t 1200 /nobreak
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
マウスでの目覚めに関するリトルHOWTO:
[スタート]-> [コントロールパネル]-> [マウス]に移動します。
[ マウスのプロパティ ]ウィンドウで、[ ハードウェア ]タブをクリックし、デバイスのリストからマウスを選択します。通常、ここには1つのマウスしかリストされませんが、コンピューターに接続したハードウェアによって異なります。リストからマウスを選択したら、[ プロパティ ]ボタンをクリックします。
今では、プロパティあなたのマウス用の窓、をクリックして設定の変更のボタン全般 ]タブをクリックします。
開いたウィンドウで、[ 電源管理 ]タブをクリックし、[このデバイスがコンピューターをスリープ解除できるようにする]というタイトルのオプションをオンにします。クリックして[OK]を、このウィンドウ上のボタンをクリックし、[OK]のボタンマウスのプロパティまだ開いているウィンドウを。これ以降、マウスボタンをクリックするか、マウスを動かして、Windows 7をスリープモードから復帰させることができます。
shutdown /h
コンピューターを休止状態にします(ただし、サスペンドについてはわかりません)。
実用的なソリューション!
私が使用していたPsShutdown
(主な問題は、適切な睡眠を可能にするユーティリティをSetSuspendState
ウェイクタイマーはマシンをウェイクアップすることはできません)。スリープするバッチファイルは、1行の簡単なものです。
PsShutdown -d -t 2
.NETによる救助。このソリューションは、PCの構成を変更することなく(休止状態をオフにすることなく)コンピューターをスリープ状態にします。このコマンドをバッチで実行します:
powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"
あなたはどちらかを使用することができ::Suspend
、睡眠のために、または::Hibernate
(他の回答が機能する方法)の。SetSuspendStateのドキュメント。
なので System.Windows.Forms
名前空間が(それはPowerShellのISEでない)、デフォルトでロードされていない、あなたは最初にそのためのアセンブリをロードする必要があります。
SetSystemPowerStateを試すと、Hiberanateを無効にする必要がなくなります。
rundll32.exe kernel32.dll、SetSystemPowerState
1,0または1 0を追加するか、Rundll32.exe powrprof.dll、SetSuspendState 0 0 1またはRundll32.exe powrprof.dll、SetSuspendState 0,0,1を実行して、引数(0,0,1)が意味しないことに注意してください。
powrprof.dll、SetSuspendStateはrundll32スタイルの引数を解析しないため、無視します。そのため、休止状態を無効にする必要があります。
この質問はすでに回答済みです。
powercfg -h off&start / min "" C:\ WINDOWS \ System32 \ rundll32.exe PowrProf.dll、SetSuspendState 0,1,0&ping -n 3 127.0.0.1> nul&powercfg -h on&exit
以下を参照してください。
バッチファイルを作成して、次の行を挿入するだけです。
7200 = 2 hours
@echo off
timeout /t 7200 /nobreak
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on