はじめに
以前、以下の記事に書いた Mac のcaffeinateコマンド的な対応を、Windows でできないかと調べてみて、試した話のメモです。
●Mac のスリープ防止対応: Mac を使った作品展示で意図しないスリープを防止する方法のメモ - Qiita
https://qiita.com/youtoy/items/142a01bd6ae563c3d144
Windows でもコマンドを使った方法があり、この後にその一つを試します。
【余談】コマンドを使わない方法
もちろん特定のアプリを使うなどの、コマンドを用いない方法もあります。例えば、Microsoft が提供しているアプリを使う方法だと、PowerToys を使った方法があります。
●PowerToys Awake - Windows コンピューターをスリープ状態にしないようにするツール | Microsoft Learn
https://learn.microsoft.com/ja-jp/windows/powertoys/awake
今回使う方法
今回使う方法は、以下のコマンドを用いたものです。
●Powercfg のコマンドライン オプション | Microsoft Learn
https://learn.microsoft.com/ja-jp/windows-hardware/design/device-experiences/powercfg-command-line-options
今回利用するオプションについて
上記のオプションで、今回使うものは以下に書かれています。
このコマンドについて、「-ac」がつくものはノートPC では電源アダプタ接続中に影響するもののようです。そして「-dc」がつくものはノートPC では電源アダプタが接続されていないバッテリー駆動中の状態で影響するものになるようです。
それらを分けて書くと、以下になります。
- AC
- monitor-timeout-ac
- disk-timeout-ac
- standby-timeout-ac
- hibernate-timeout-ac
- DC
- monitor-timeout-dc
- disk-timeout-dc
- standby-timeout-dc
- hibernate-timeout-dc
上記の 4種類ある内容は、以下となるようです。
- monitor-timeout: 画面オフまでの時間
- disk-timeout: ディスク停止までの時間
standby-timeout: スリープまでの時間
hibernate-timeout: 休止状態までの時間
さらに、この後ろに「分」単位の時間の数字をつけます。
先に現在の設定を確認する
この後に設定変更を実施するのですが、その前に現在の設定を確認しておきます。
GUI で確認
とあるデスクトップPC で、GUI上で設定を確認してみました。
また、別のノートPC で、GUI上で設定を確認してみました。
コマンドで確認(上記のデスクトップPC のほう)
上記のデスクトップPC のほうで、コマンドを使った設定確認を行ってみます。設定確認用のコマンドは、以下の 3つです。
powercfg /query SCHEME_CURRENT SUB_VIDEO VIDEOIDLE
powercfg /query SCHEME_CURRENT SUB_SLEEP STANDBYIDLE
powercfg /query SCHEME_CURRENT SUB_SLEEP HIBERNATEIDLE
上記のコマンドを 1つずつ実行してみた時の結果を以下に掲載します。
ディスプレイの電源を切るまでの時間
以下は、ディスプレイの電源を切るまでの時間を確認したものです。
最後の2行が、以下の内容を示しています。
- AC電源時 0x00000708 1800秒 = 30分(AC電源接続時は 30分後に画面オフ)
- DC電源時 0x000000b4 180秒 = 3分(DC電源接続時は 3分後に画面オフ)
スリープまでの時間
以下は、スリープまでの時間を確認したものです。
AC電源接続時は「18000秒 = 300分 = 5時間」でスリープし、DC電源接続時は「600秒 = 10分 = 10分」でスリープするという内容です。
休止状態にするまでの時間
以下は、休止状態にするまでの時間を確認したものです。
AC電源接続時は「18000秒 = 300分 = 5時間」で休止状態になるという内容です。また、DC電源接続時は「0秒」で休止状態になる設定ではなく、休止状態にはしないという設定になります。
設定を変更するコマンド
以下は、設定を変更するコマンドです。
AC電源接続時の「スリープ、休止状態」の無効化
まずは AC電源接続時に「スリープ、休止状態」を無効化するコマンドです。バッチファイルを作って、以下を実行する形にしました。
@echo off
powercfg /change standby-timeout-ac 0
powercfg /change hibernate-timeout-ac 0
echo AC電源接続時の「スリープ、休止状態」を無効化しました
pause
AC電源接続時の「ディスプレイ電源オフ、スリープ、休止状態」の無効化
次は、画面オフも避ける場合のコマンドです。以下は、AC電源接続時に「ディスプレイ電源オフ、スリープ、休止状態」を無効化します(これもバッチファイルにしました)。
@echo off
powercfg /change monitor-timeout-ac 0
powercfg /change standby-timeout-ac 0
powercfg /change hibernate-timeout-ac 0
echo AC電源接続時の「ディスプレイ電源オフ、スリープ、休止状態」を無効化しました
pause
AC電源接続時の「スリープ、休止状態」の無効化を元にもどす
最後に、AC電源接続時の「ディスプレイ電源オフ、スリープ、休止状態」の無効化を元にもどすコマンド(バッチファイルにたもの)です。数字の部分は、元の設定に合わせて決めた内容になります。
@echo off
powercfg /change monitor-timeout-ac 30
powercfg /change standby-timeout-ac 300
powercfg /change hibernate-timeout-ac 300
echo AC電源接続時の「ディスプレイ電源オフ、スリープ、休止状態」を有効にしました
pause
以下は、AC電源接続時の「スリープ、休止状態」の無効化を元にもどすコマンド(バッチファイルにたもの)です。これも、数字の部分は元の設定に合わせて決めた内容になります。
@echo off
powercfg /change standby-timeout-ac 300
powercfg /change hibernate-timeout-ac 300
echo AC電源接続時の「スリープ、休止状態」を有効にしました
pause





