質問: スリープモードへの移行を一時的に無効にするコマンド ずばり「スリープモードへの移行を一時的に無効にするコマンド」は存在しませんでしょうか? robocopy ~ でバッチファイルを書いて、定期的にファイルのバックアップを行っていますが、時間によっては robocopy 実行中にスリープモードへ移行してしまいます。 biosの設定で、毎月1日の未明に自動起動させ、かつタスクによって、起動数分後に robocopy ~ を含むバッチファイルを自動実行させるようにしたいのですが。 バックアップする度にスリープへの移行を無効にするのは面倒です。 powercfg -x で、無効に設定できそうな雰囲気ではありますが、「一時的に無効にしてコピーが終了したら元に戻す」という雰囲気でなく、単に設定を変更してしまうようなものに見えます。 バッチファイルのコマンドシェルが生きている間だけ無効にしたいのですが、良い方法はないものでしょうか。
回答: 簡単な実行プログラムを作成する必要があります。 setthreadexecutionstate 関数にて es_system_required フラグを使用して、 アプリケーション(バッチジョブ)の実行中にスリープ状態に入るのを防げばいいです。 ジョブが終了すれば setthreadexecutionstate は解除されます。 下記マイクロソフトサイトを参照してください。 http://msdn.microsoft.com/ja-jp/library/cc429178.aspx