web-dev-qa-db-ja.com

コマンドラインを介して表示スケーリングを変更することは可能ですか?

2台の外部1080pモニターに接続された2560 x 1440ディスプレイのラップトップを持っています。スケーリングは正常で、ネイティブモニターが125%、1080pモニターが100%ですが、ラップトップをドッキング解除すると、ラップトップが200%のスケーリングファクターになることがあり、ディスプレイ設定で手動でリセットする必要があります。

ここで設定をエミュレートするコマンドを見つけたいので、外部モニターを外すたびにデスクトップを右クリックしてディスプレイ設定を開く必要はありません。

enter image description here

このために私が見つけた唯一のレジストリキー/ PowerShellコマンドは、ログアウトを有効にする必要があります。これは、GUI設定がすぐに有効になる場合は必要ないと思われます。

5
Justin

以下は、GUIを操作してスケールとレイアウトオプションとを調整するためにキーボードストロークをエミュレートするバッチスクリプトです実行時にサイズやテキスト、アプリ、その他のアイテムを変更します。これはms-settings:displayをクリックしてDisplay画面を開き、tabキーを1回押します上矢印を5回sendkeys を使用して、それに応じてスケールを調整します。終了したら、終了キーでAlt + F4を押して画面を閉じます。このメソッドは、バッチスクリプトを使用して動的なvbスクリプトを作成し、次に cscript を使用してvbスクリプトを実行し、キーボードのキーの押下をエミュレートします。


バッチスクリプト

注:これを.batまたは.cmd拡張機能を実行して実行します。

@ECHO OFF

Explorer ms-settings:display
ping -n 2 127.0.0.1 > nul

:VBSDynamicBuild
SET TempVBSFile=%tmp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{TAB}{UP 5}"                      >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "%%{F4}"                           >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"
EXIT

さらなるリソース

6
Pimp Juice IT