12

オフィス (Windows 7) ではステーションとダブル スクリーンを備えたラップトップを使用し、自宅ではステーションなしでラップトップを使用しています。

ポイントは、ステーションからスタンドアロンのラップトップに切り替えるたびにテキスト サイズを変更する必要があるということです。これは、ダブル スクリーンではテキスト サイズが大きすぎますが、ラップトップ スクリーンでは小さすぎるためです。

続行するには: デスク画面を右クリックし、解像度の変更を選択し、[テキストとその他の要素を拡大または縮小] を選択して、100%、125% などを選択します。設定を適用するには、セッションを再起動する必要があります。(注:私はフランス語のシステムを使用しており、テキストは私たちのバージョンとまったく同じではないと思います)。

あまり便利ではないので、おそらく PowerShell スクリプトを使用して、これを自動化したいと考えています。

理想的には、スクリプトは、ラップトップを単独で使用しているか、2 つの画面を備えたステーションを使用しているかを検出できます)。さらに、セッションの再起動なしで (この最後の点が実現可能かどうかは疑問です)。

どうすれば始められますか? これが可能であれば。

4

9 に答える 9

10

他の回答で想定されているように、dpi スケーリングはユーザー定義の設定であるため、HKLM の下の設定は正しい場所ではありません。正しいレジストリ キーHKCU:\Control Panel\Desktopの値は ですLogPixels

すべての DPI 関連のレジストリ設定の詳細については、DPI 関連の API とレジストリ設定 を参照してください。

現在のスケーリングに応じて 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
于 2014-12-31T12:00:00.057 に答える
4

どうやらあなたはのLogPixelsプロパティを設定することができます

HKLM:/Software/Microsoft/Windows NT/CurrentVersion/FontDPI

これは、ネット上の多くの場所で繰り返されます。しかし、dpi は HKLM の下では意味のないユーザー設定であるという印象を受けました。

于 2012-05-01T08:06:38.070 に答える
2

すみません、質問を読み違えました。PowerShell ウィンドウを制御したいと思っていました。

既に述べたように、レジストリで LogPixels 設定を設定できます。現在の設定を確認するには、次のようにします。

Get-Item -Path Registry::'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI' | Select-Object -ExpandProperty Property

LogPixels キーが存在する場合は表示されますが、存在しない場合は作成できます。

Set-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI\LogPixels'

注意: レジストリを操作できる権限でこれを実行する必要があります。

これについては、 TechNet に優れた紹介があります。

于 2012-05-01T07:44:07.137 に答える
0

これは私が見つけた最も簡単な方法です。提供された関数を簡単にコピー/貼り付けできるように少し変更しました。レジストリ呼び出しなどは必要ありません。シンプルで非常に効果的です。

このように呼び出すことができます

Set-Scaling -scaling 0

function Set-Scaling {
    # Posted by IanXue-MSFT on
    # https://docs.microsoft.com/en-us/answers/questions/197944/batch-file-or-tool-like-powertoy-to-change-the-res.html
    # $scaling = 0 : 100% (default)
    # $scaling = 1 : 125% 
    # $scaling = 2 : 150% 
    # $scaling = 3 : 175% 
    param($scaling)
    $source = @’
    [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
    public static extern bool SystemParametersInfo(
                      uint uiAction,
                      uint uiParam,
                      uint pvParam,
                      uint fWinIni);
    ‘@
    $apicall = Add-Type -MemberDefinition $source -Name WinAPICall -Namespace SystemParamInfo –PassThru
    $apicall::SystemParametersInfo(0x009F, $scaling, $null, 1) | Out-Null
    }
于 2021-07-01T18:33:24.343 に答える