Windows10のかゆいところに手が届く。モニター画面だけオフにする方法
こんにちわスピカです。
Androidなどは画面だけオフにするアプリがあったりして結構便利に利用させてもらっていますが、ことWindowsの場合PC自体スリープにするのは比較的簡単にできるのですが画面のみオフというのはあまり見ない。
一定時間後のモニター電源オフはOSの機能だけでできる
これはスクリーンセーバーの設定と同じで、「Windowsの設定」で可能です。
手順としては、
①「Windowsの設定」から「システム」を呼び出す
②右ペインの「電源とスリープ」をクリック
③左ペインの「画面」欄の下に「次の時間が経過後、ディスプレイの電源を切る」のプルダウンメニューで時間を設定する。
でもユーザーが消したい時の方法って
Windows自体のショートカット機能でもワンクリで消せる方法は簡単にはないようです。
そうなるとやはり頼みの綱はフリーソフト・・で探すと
画面のみオフにするソフト
画面オフ
起動させると上記画面が表示され「省エネ」ボタンをクリックすると画面が消灯します。最低でも2クリック必要、しかも再度画面が表示されたときにソフトがまだ常駐したまま。このあたりがちょっと残念かな・・
ディスプレイ@OFF
これはディスクトップ上にでもショートカットを作っておいて、それをダブルクリックすれば、上記のダイアログが表示されて5秒後に画面が消灯します。時間の設定はできないようです。
ScreenOff
これもディスクトップ上にでもショートカットを作っておいて実行するといきなり画面が消えます。ワンクリック消しにもってこいかも。
スクリプトでも可能
スリープ等などのようにショートカットを作成してワンクリでというのはないようですが、Powershellを使ったスクリプティングなら作っている方が何人か見つかりました。
ファイル名 MonitorPowerOff.ps1
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$form=new-object System.Windows.Forms.Form
$message=[System.Windows.Forms.Message]::Create($form.Handle,274,61808,2)
$nativeWindow=new-object System.Windows.Forms.NativeWindow
$nativeWindow.DefWndProc([ref]$message)MonitorPowerOn.ps1
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$form=new-object System.Windows.Forms.Form
$message=[System.Windows.Forms.Message]::Create($form.Handle,274,61808,-1)
$nativeWindow=new-object System.Windows.Forms.NativeWindow
$nativeWindow.DefWndProc([ref]$message)
使いかたは、適当な場所(ディスクトップ等)に新規テキストファイルを作成、メモ帳等で開く。
そのテキストファイルに、「ファイル名 MonitorPowerOff.ps1」を除いた以下文をコピペして保存。
ファイル名を「MonitorPowerOff.ps1」(MonitorPowerOffの部分は何でもよい)とファイル名を変更します。
その時に必ず拡張子を表示しておくことです。そうでないと「MonitorPowerOff.ps1.txt」となってしまい。スクリプトファイルとして機能しません。
もし拡張子の表示の仕方がわからない場合はここを参照してちょ
もうひとつ紹介
ファイル名 monitoroff.ps1
# Turn off the display.
# Then, the display will be turned on if a key is pressed.$HWND_BROADCAST = -1
$WM_SYSCOMMAND = 0x0112
$SC_MONITORPOWER = 0xF170
$LPARAM_ON = -1
$LPARAM_LOW_POWER = 1
$LPARAM_OFF = 2$signature = @'
[DllImport("user32.dll")] public static extern bool PostMessage(
IntPtr hWnd,
UInt32 Msg,
Int32 wParam,
Int32 lParam);
'@$postMessage = Add-Type -memberDefinition $signature `
-Name "Win32PostMessage" `
-namespace "Win32Functions" `
-passThru$postMessage::PostMessage( $HWND_BROADCAST, $WM_SYSCOMMAND, $SC_MONITORPOWER, $LPARAM_OFF) | Out-Null
[Console]::Readkey() | Out-Null$postMessage::PostMessage( $HWND_BROADCAST, $WM_SYSCOMMAND, $SC_MONITORPOWER, $LPARAM_ON) | Out-Null
$null
引用元:Hiroshi Okada's blog
こちらは、再度画面表示すると、Powershellのダイアログが残ったままですね。
総 評
私の使用感からするとやはりワンクリで実行できるタイプが非常に便利に感じました。
ただ、ソフト(アプリ)化されたものは、ソースコードが不明な分、ちょっと不安感もありますが、このクラスのソフトなら何も問題もないと思います。
ディスカッション
コメント一覧
貴重な情報をありがとうございます。ScreenOffを導入しアイコンもできたのですが、画面が消えても5秒くらいでまた表示されます。ちゃんと導入できていないのでしょうか?
コメントありがとうございます
当方でも再度ScreenOffの最新バージョンをダウンロードし確認してみました。当方の環境では実行したのち画面が消えてその後消えたままでした。
原因として考えられるのは、ScreenOffの実行ファイルをダブルクリック(マウスの場合)したあとマウスが多少なりとも動くと画面が消えたあと戻ってしまいます。
これは仕様だと思うので(マウスやキーボード操作で復帰するため)マウスでダブルクリックしたあとはマウスを微動ださせないことが重要だと思います。
もしどうしても画面が復帰してしまうようなら、ScreenOffのショートカットファイルをディスクトップ上に作成し右クリックメニューからプロパティをクリックするとプロパティ画面の中央付近に「ショーットカットキー」という項目があるので(シュートカットタブになっていないとダメ)その右のテキストボックスにフォーカスしたのち「F11」キーを押す。
すると「F11」と表示されるのでOKボタンを押す。
ディスクトップにフォーカスしておいてF11キーを押すと画面が消えるはずです。
この場合マウスを触らないことが肝要。キーボードのみで出来るので試してみてください。
当方でもこの手法は確認しております。
早速のご返事ありがとうございます。
ご指摘のとおり、マウスが微妙に動いていたようで、それに注意すると消えたままになります。フォローの記述までしていただき恐縮です。
やれればと思っていたことができて非常に気持ちがいいです。今後ともよろしくお願いいたします。
はじめまして、自分はダメでした。
(windows10、hpのENVY使用)
画面オフ、ScreenOffの2つ
試しましたが、スリープの様な?状態になってしまいます。
電源管理による画面オフ>Spotifyの再生持続、
ソフトによる画面オフ>Spotifyが即再生停止
になりました。。