2022/02/27

220227 AutoHotkeyで画面を暗くする

 夜に暗い部屋でPC作業する時に、PangoBrightというソフトでマルチディスプレイの明るさをまとめて調整していたが、AutoHotkeyでも同様のことができた。


参考: 3 ways to dim the screen

https://www.autohotkey.com/boards/viewtopic.php?t=39580


3番目のスクリプトを参考にしたが、最初にマルチモニタ全体のサイズを出しておき、GUIで黒い半透明のレイヤーを表示させる。

Win+Alt+8、9で黒いレイヤーの透明度をDimに代入し実行、Win+Alt+0でもとに戻す。



#!0::GUI, Destroy


#!9::

{

Dim := 127 ; 0 (Bright) ~ 255 (Black)

Gosub, DimScreen

Return

}


#!8::

{

Dim := 191 ; 0 (Bright) ~ 255 (Black)

Gosub, DimScreen

Return

}


DimScreen:

{

WinGet, hWnd, ID, A

global MonitorLeft, MonitorRight, MonitorTop, MonitorBottom

global PrevMonitorLeft := 0, PrevMonitorRight := 0, PrevMonitorTop  := 1,  PrevMonitorBottom := 1

SysGet, MonitorCount, MonitorCount

Loop, %MonitorCount%

{

SysGet, Monitor, Monitor, %A_Index%

MonitorLeft := min(MonitorLeft, PrevMonitorLeft)

MonitorRight := max(MonitorRight, PrevMonitorRight)

MonitorTop := min(MonitorTop, PrevMonitorTop)

MonitorBottom := max(MonitorBottom, PrevMonitorBottom)

PrevMonitorLeft := MonitorLeft

PrevMonitorRight := MonitorRight

PrevMonitorTop := MonitorTop

PrevMonitorBottom := MonitorBottom

}

Gui, Color, 000000

Gui, -Caption +AlwaysOnTop +E0x20 +HwndhGui +ToolWindow

Gui, Show, % Format("x{} y{} w{} h{}", MonitorLeft, MonitorTop, MonitorRight - MonitorLeft, MonitorBottom - MonitorTop), dimmer

WinSet, Transparent, % Dim, % "ahk_id " hGui

WinActivate, % "ahk_id " hWnd

Return

}


0 件のコメント:

コメントを投稿