Windows10のかゆいところに手が届く。モニター画面だけオフにする方法

スポンサーリンク

こんにちわスピカです。

Androidなどは画面だけオフにするアプリがあったりして結構便利に利用させてもらっていますが、ことWindowsの場合PC自体スリープにするのは比較的簡単にできるのですが画面のみオフというのはあまり見ない。

一定時間後のモニター電源オフはOSの機能だけでできる

これはスクリーンセーバーの設定と同じで、「Windowsの設定」で可能です。

手順としては、

①「Windowsの設定」から「システム」を呼び出す

②右ペインの「電源とスリープ」をクリック

③左ペインの「画面」欄の下に「次の時間が経過後、ディスプレイの電源を切る」のプルダウンメニューで時間を設定する。

でもユーザーが消したい時の方法って

Windows自体のショートカット機能でもワンクリで消せる方法は簡単にはないようです。

そうなるとやはり頼みの綱はフリーソフト・・で探すと

画面のみオフにするソフト

画面オフ

Link

起動させると上記画面が表示され「省エネ」ボタンをクリックすると画面が消灯します。最低でも2クリック必要、しかも再度画面が表示されたときにソフトがまだ常駐したまま。このあたりがちょっと残念かな・・

ディスプレイ@OFF

Link

これはディスクトップ上にでもショートカットを作っておいて、それをダブルクリックすれば、上記のダイアログが表示されて5秒後に画面が消灯します。時間の設定はできないようです。

ScreenOff

Link

これもディスクトップ上にでもショートカットを作っておいて実行するといきなり画面が消えます。ワンクリック消しにもってこいかも。

スクリプトでも可能

スリープ等などのようにショートカットを作成してワンクリでというのはないようですが、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)

引用元:Windows Script Programming

使いかたは、適当な場所(ディスクトップ等)に新規テキストファイルを作成、メモ帳等で開く。

そのテキストファイルに、「ファイル名 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のダイアログが残ったままですね。

総 評

私の使用感からするとやはりワンクリで実行できるタイプが非常に便利に感じました。

ただ、ソフト(アプリ)化されたものは、ソースコードが不明な分、ちょっと不安感もありますが、このクラスのソフトなら何も問題もないと思います。

品揃え豊富で安い!NTT-X Store

スポンサーリンク
読んで役にたってもたたなくてもポチってね

読んで役にたってもたたなくてもポチってね(^^♪。
ブログランキング・にほんブログ村へ
にほんブログ村

シェアする

  • このエントリーをはてなブックマークに追加

コメント

  1. タキイケンジ より:

    貴重な情報をありがとうございます。ScreenOffを導入しアイコンもできたのですが、画面が消えても5秒くらいでまた表示されます。ちゃんと導入できていないのでしょうか?

    • aroeuser より:

      コメントありがとうございます
      当方でも再度ScreenOffの最新バージョンをダウンロードし確認してみました。当方の環境では実行したのち画面が消えてその後消えたままでした。

      原因として考えられるのは、ScreenOffの実行ファイルをダブルクリック(マウスの場合)したあとマウスが多少なりとも動くと画面が消えたあと戻ってしまいます。

      これは仕様だと思うので(マウスやキーボード操作で復帰するため)マウスでダブルクリックしたあとはマウスを微動ださせないことが重要だと思います。

      もしどうしても画面が復帰してしまうようなら、ScreenOffのショートカットファイルをディスクトップ上に作成し右クリックメニューからプロパティをクリックするとプロパティ画面の中央付近に「ショーットカットキー」という項目があるので(シュートカットタブになっていないとダメ)その右のテキストボックスにフォーカスしたのち「F11」キーを押す。

      すると「F11」と表示されるのでOKボタンを押す。
      ディスクトップにフォーカスしておいてF11キーを押すと画面が消えるはずです。

      この場合マウスを触らないことが肝要。キーボードのみで出来るので試してみてください。
      当方でもこの手法は確認しております。

  2. タキイケンジ より:

    早速のご返事ありがとうございます。

    ご指摘のとおり、マウスが微妙に動いていたようで、それに注意すると消えたままになります。フォローの記述までしていただき恐縮です。

    やれればと思っていたことができて非常に気持ちがいいです。今後ともよろしくお願いいたします。