モニターを点灯・消灯する Powershell スクリプト
夜間に長い作業を裏で行っているあいだ、眩しく光るモニターを消灯できないかと考えた。
コマンドではないが、 PostMessage
を使えばできるようだ。
Powershell を使ってそれをする関数を書いてみた。 Windows 10 および Windows 11 で検証した。
使い方はこんな感じ。 モニターを消しても、マウスやキーボードを動かすと点灯する。
ちなみに、 LowPower
というパラメーターがあるけど、実行しても何も起きなくてよくわかってない。
Set-MonitorState -TurnMonitor Off
function Set-MonitorState { param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [ValidateSet("On", "Off", "LowPower")] [string]$TurnMonitor ) $signature = @' [DllImport("user32.dll")] public static extern bool PostMessage( uint hWnd, uint Msg, IntPtr wParam, IntPtr lParam ); '@ Add-Type -Namespace MyNameSpace -Name Utils -MemberDefinition $signature -ErrorAction SilentlyContinue $CONST = @{ HWND_BROADCAST = 0xFFFF WM_SYSCOMMAND = 0x0112 SC_MONITORPOWER = 0xF170 } $lParam = switch ($TurnMonitor) { "On" { -1 } "LowPower" { 1 } "Off" { 2 } } [MyNameSpace.Utils]::PostMessage( $CONST.HWND_BROADCAST, $CONST.WM_SYSCOMMAND, $CONST.SC_MONITORPOWER, $lParam) ` | Out-Null }