web-dev-qa-db-ja.com

マルチモニター設定に切り替えるときに画面のDPIスケーリングを自動的に変更するにはどうすればよいですか?

私は14 "1920×1080のラップトップと24" 1920×1200の画面を持っています。ピクセル密度の違いは非常に大きいです。

大画面をメイン画面、ノートパソコンを追加画面として使用する場合は、小さい画面を150%に設定して、快適に使用できるようにしたいと思います。しかし、デスクから離れていて外部画面が切断されている場合は、ラップトップを自動的に100%スケーリングに切り替えて、デスクトップ領域を最大化する必要があります。

外部画面が接続または切断されたときにWindowsがDPIスケーリングを自動的に切り替えるようにするにはどうすればよいですか?

必要に応じてサードパーティのソフトウェアを使用しても問題ありませんが、Windowsの組み込み機能に固執したいと思います。

Windows 10Proバージョン1703を使用しています。

2
gronostaj

ログオフとログオンが必要なため、DPIスケーリングを自動的に変更することはできません。

これは、PowerShellを使用してDPIレジストリキーを設定し、2つのDPIを少し速く切り替える方法に関する優れたスレッドです。それでもログオフする必要があり、スクリプトがそれを自動化します。

https://stackoverflow.com/questions/10365394/change-windows-font-size-dpi-in-powershell

これを拡張したい場合は、Powershellを使用したモニター情報の読み取りに関する情報を次に示します。 https://blogs.technet.Microsoft.com/heyscriptingguy/2013/10/03/use-powershell-to-discover-マルチモニター情報/

また、特定のユーザーのレジストリキーの変更に関する情報もあります。ログオンしていないとき、または起動中にスクリプトを実行すると、レジストリHiveがロードされないため、これが必要になります。 https://www.pdq.com/blog/modifying-the-registry-of-another-user/

それをいくつかの工夫と組み合わせれば、このスクリプトをログオフ時とコンピューターの起動時に実行するようにスケジュールできます。トリッキーな部分は、新しい設定を有効にするために常に新しいログオンを行う必要があるということです。これが最大の欠点です。

さて、より良い解決策は、ログオフせずに実行できる実際の表示解像度を変更することかもしれません: https://blogs.technet.Microsoft.com/heyscriptingguy/2010/07/07/hey-scripting-guy -how-can-i-change-my-desktop-monitor-resolution-via-windows-powershell /

多くのプログラムは非標準のDPIで正しく機能しないので、私に言わせれば、ディスプレイの解像度を変更する方が良い解決策です。

だからあなたはそれを持っています。これを自動化するための新しいスクリプトを作成するためのすべてのリソース。これで、 http://stackoverflow.com で誰かを助けてくれるかどうかを確認できます。 :)

1
Appleoddity