WindowsタブレットでモニターのみOFF | A.B.K.Force

A.B.K.Force

Life, Music, etc...

処理中だからシャットダウンはしたくないけど、電気を食うからモニターは消したい

音楽を聴きながら寝たいけど、光は邪魔だからモニターは消したい

 

色んな理由はあれど、Windowsタブレットで「モニターだけ」を消すっていうのはあまり標準装備されていない

 

ならば作ろうということで調べてみると、APIのPostMessageで以下のようにブロードキャストすればうまくいった

 

HWND_BROADCAST = &HFFFF&
WM_SYSCOMMAND = &H112&
SC_MONITORPOWER = &HF170&

DISPLAY_OFF = 2
 

Sleep 100
PostMessage HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, DISPLAY_OFF

 

PostMessage前に100msスリープしているのはexeをエンターで叩いた後のKeyUpイベント

またはショートカットをクリックした後のMouseUpイベントでモニタが復帰してしまう場合があるから

 

↓exeなんて作れないよという人は以下からダウンロード↓

モニターオフ

 

ただ、Windows 8.1および10だとInstantGoという機能が邪魔をする

 

上記exeでモニターをオフにするとほぼスリープ状態に移行してしまう

 

以下のコマンドを実行すればInstantGoの機能をオフにしてモニターだけをオフにできる

 

reg add HKLM\SYSTEM\CurrentControlSet\Control\Power /v CsEnabled /t REG_DWORD /d 0

 

個人的には問題ばかり起こす「高速スタートアップ」機能も抱き合わせでオフにすることを推奨する

 

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0