web-dev-qa-db-ja.com

コマンドラインによるWindows 8.1のDPIスケーリング

キーボードショートカットの検出時に実行する小さなマクロを作成することにより、コンピューターのDPIスケールをすばやく簡単に変更するためのキーボードショートカットを作成したいと思います。

Windows 8.1では、デスクトップディスプレイのDPIスケールをコントロールパネル(下図参照)から設定でき、すぐに有効になります。または、レジストリでスケールを手動で設定することもできますが、これを行うには、ユーザーがサインインまたはログアウトするか、マシンを再起動して有効にする必要があります(「すべてのディスプレイに1つのスケーリングレベル」オプションのみを模倣するように機能します)。 。

コマンドラインまたはプログラムでDPIスケールを設定するにはどうすればよいですか?

http://puu.sh/93YLV.jpg

14
FThompson

モニターに依存しないスケーリングの正しいレジストリキーはHKCU:\Control Panel\Desktop値はLogPixelsです。すべてのDPI関連のレジストリ設定の詳細については、以下を参照してください。 http://technet.Microsoft.com/en-us/library/dn528846.aspx#system 次の場合の情報もあります。ディスプレイごとに異なるスケーリングを有効にしました。

現在のスケーリングに応じてすべてのディスプレイのDPIスケーリングを変更し、ユーザーログオフを実行する小さなPowerShellスクリプトを書いたので、デバイスを別のモニターに置いたときにスクリプトを実行する必要があります。

cd 'HKCU:\Control Panel\Desktop'
$val = Get-ItemProperty -Path . -Name "LogPixels"
if($val.LogPixels -ne 96)
{
    Write-Host 'Change to 100% / 96 dpi'
    Set-ItemProperty -Path . -Name LogPixels -Value 96
} else {
    Write-Host 'Change to 150% / 144 dpi'
    Set-ItemProperty -Path . -Name LogPixels -Value 144
}

logoff;exit

TechNet記事の情報を使用して、ニーズに合わせて変更できると思います。

9
Torben Schramme

画面の解像度を変更するPowerShellスクリプトが役立ちます。変更がWindows 8.1で即時に行われるかどうかはわかりませんが、少し運がよければ、このスクリプトはコントロールパネルアプレットで使用されるのと同じAPIを使用する可能性があります。

完全なSet-ScreenResolution.ps1スクリプトは スクリプトリポジトリ で利用できますが、ここで再現するには長すぎます。

著者によるその説明は記事にあります:
Hey、Scripting Guy!Windows PowerShellを介してデスクトップモニターの解像度を変更する方法はありますか?

それを使用することに関するいくつかの情報は記事で見つけることができます:
Powershellで画面解像度を変更する

2
harrymc