DPI に関連する Api とレジストリの設定DPI-related APIs and registry settings

展開のカスタマイズを実行する必要がある場合、次のセクションには、レジストリ キーと、インストール後のスクリプトは、アクセスする必要があるシステム パラメーターについて説明します。If you need to perform deployment customizations, the following sections explain the registry keys and system parameters that your post-installation scripts might need to access.

このトピックの内容。In this topic:

プライマリ ディスプレイのネイティブの解像度Primary display native resolution

表 1 Windows 8.1 の拡張レベル、中に完全ではなく、さまざまな一般的な表示のレベルをスケーリングする Windows 8.1 の情報を提供します。Table 1 Windows 8.1 Scaling Levels, while by no means exhaustive, provides information on the Windows 8.1 scaling level for a number of common displays. パネルの DPI 、パネルの物理ピクセル密度を示しますとレベルにスケーリングこの表示に使用されるスケール ファクターのことを示します。Panel DPI indicates the physical pixel density of the panel, and Scaling level indicates the scale factor that will be used for this display.

表 1 Windows 8.1 のスケーリングのレベルTable 1 Windows 8.1 Scaling Levels

ディスプレイ サイズDisplay size 画面の解像度Display resolution 水平方向 (ピクセル単位)Horizontal (pixels) 垂直方向 (ピクセル単位)Vertical (pixels) DPI のパネルPanel DPI レベルのスケーリングScaling level
10.6"10.6" FHDFHD 19201920 10801080 208208 150%150%
10.6"10.6" HDHD 13661366 768768 148148 100%100%
11.6"11.6" WUXGAWUXGA 19201920 12001200 195195 150%150%
11.6"11.6" HDHD 13661366 768768 135135 100%100%
13.3"13.3" WUXGAWUXGA 19201920 12001200 170170 150%150%
13.3"13.3" QHDQHD 25602560 14401440 221221 200%200%
13.3"13.3" HDHD 13661366 768768 118118 100%100%
15.4"15.4" FHDFHD 19201920 10801080 143143 125%125%
15.6"15.6" QHD+QHD+ 32003200 18001800 235235 200%200%
17"17" FHDFHD 19201920 10801080 130130 125%125%
23"23" QFHD (4 K)QFHD (4K) 38403840 21602160 192192 200%200%
24"24" QHDQHD 25602560 14401440 122122 125%125%

すべてのデバイスでこの情報をプログラムで検索するには、データを報告するユーティリティ プログラムを記述できます。To programmatically find this information for any device, you can write a utility program that reports back data. ネイティブの主な解像度は、API を呼び出すことによって取得GetDeviceCaps() 関数hdc を使用して、デスクトップおよび HORZRES VERZRES インデックス。The native primary resolution is retrieved by calling the API GetDeviceCaps() function, using the hdc for the desktop and the HORZRES and VERZRES indices:

// Get desktop dc
desktopDc = GetDC(NULL);
// Get native resolution
horizontalResolution = GetDeviceCaps(desktopDc,HORZRES);
verticalResolution = GetDeviceCaps(desktopDc,VERZRES);

GetDC の詳細については、GetDC() 関数を参照してください。For more information about GetDC, see GetDC() function.

プライマリ ディスプレイ DPI のスケール ファクターPrimary display DPI scale factor

同様に、LOGPIXELSX LOGPIXELSY インデックスを使用して、ピクセル密度を取得できます。Similarly, you can get the pixel density by using the LOGPIXELSX and LOGPIXELSY indices:

// Get desktop dc
desktopDc = GetDC(NULL);
// Get native resolution
horizontalDPI = GetDeviceCaps(desktopDc,LOGPIXELSX);
verticalDPI = GetDeviceCaps(desktopDc,LOGPIXELSY);

座標システムでこれらの結果が返されますが 96 で 100% に相当のようにテーブル 2 の DPI スケール ファクターします。These results are returned in a coordinate system in which 96 corresponds to 100%, as shown in Table 2 DPI Scale Factors.

表 2. DPI のスケール ファクターTable 2 DPI Scale Factors

DPIDPI 倍率Scale factor
9696 100100
120120 125125
144144 150150
192192 200200

  この API は、アプリケーションの解像度認識モードによって異なる結果を返します。Note   This API will return different results depending on the DPI awareness mode of your application. 認識モードを構成するには、後述するよう、アプリケーション マニフェストに XML を追加する必要があります。Configuring the awareness mode requires adding XML to the application manifest, as detailed below:

DPI 認識モードDPI Awareness Mode マニフェストの設定Manifest Setting 返される値Returned Value
なしNone なしNone  スケール ファクターに関係なく、すべてのディスプレイの 9696 for all displays, regardless of the scale factor
システム DPI 認識System DPI Aware <dpiAware>True</dpiAware><dpiAware>True</dpiAware> (この場合、ユーザーは Windows を最初に記録)、Windows セッションを開始した時点でプライマリ ディスプレイの DPIThe DPI of the primary display at the time the Windows session was started (when the user first logged in to Windows)
モニターごとの DPI 認識Per-Monitor DPI Aware <dpiAware>True/PM</dpiAware><dpiAware>True/PM</dpiAware> (この場合、ユーザーは Windows を最初に記録)、Windows セッションを開始した時点でプライマリ ディスプレイの DPI。The DPI of the primary display at the time the Windows session was started (when the user first logged in to Windows). アプリケーションが上の画面の DPI を取得するGetWindowDpi()またはGetDpiForMonitor()To obtain the DPI of the display that the application is located on, use GetWindowDpi() or GetDpiForMonitor()

このマニフェストの設定の詳細については、SetProcessDPIAware 関数を参照してください。For more information about this manifest setting, see SetProcessDPIAware function.

スケーリング モードScaling mode

コントロール パネルの \デザインと個人用設定\表示ユーザー インターフェイス (UI) のチェック ボックスが含まれています。すべてのディスプレイの 1 つのスケーリング レベルを選択できるようにシステム (Windows 8 および Windows の以前のバージョン) ようにすべてのディスプレイを 1 つのスケール ファクターを適用するか、アカウントのピクセル密度の異なるスケール ファクターを考慮するかを制御します。各ディスプレイ (Windows 8.1 の既定値)。The Control Panel\ Appearance and Personalization\Display user interface (UI) includes a checkbox: Let me choose one scaling level for all my displays, which controls whether the system applies a single scale factor to all displays (as in Windows 8 and earlier versions of Windows), or different scale factors that take into account the pixel density of each display (the Windows 8.1 default). このチェック ボックスを構成、 HKCU\コントロール パネルの \デスクトップ\Win8DpiScaling Windows 8.1 でのレジストリ キー。This checkbox configures the HKCU\Control Panel\Desktop\Win8DpiScaling registry key in Windows 8.1.

表 3 HKCU\コントロール パネル\デスクトップ\Win8DpiScaling 値Table 3 HKCU\Control Panel\Desktop\Win8DpiScaling Values

キーの値Key value 意味Meaning
00 画面ごとに異なるスケール ファクター。Windows 8.1 の既定値です。1 つのディスプレイ間で移動、コンテンツは、適切なサイズになりますが、ビットマップ スケーリングすることができます。Different scale factors for each display: Windows 8.1 default.Content that is moved from one display to another will be the right size, but can be bitmap-scaled.
11 同じスケール ファクターは、すべてのディスプレイに適用されます。Windows 8 および Windows のバージョンの以前の動作。Same scale factor is applied to all displays: Windows 8 and earlier Windows versions behavior. コンテンツは 1 つのディスプレイから別に移動するには、サイズが正しくない可能性があります。Content that is moved from one display to another might be the wrong size.

Windows 8.1 のスケーリング モードでの上書きのスケーリングScaling override in Windows 8.1 scaling mode

ときに、 、すべてのディスプレイの 1 つのスケール レベルを選択できるように、小から、現在のスケール ファクターをオーバーライドすることができますスライダーで、ユーザーが提供されているチェック ボックスがクリアされると、システムが Windows 8.1 のスケーリング モードで実行されている、中規模から大規模です。When the Let me choose one scaling level for all my displays checkbox is cleared and the system is running in the Windows 8.1 scaling mode, the user is provided with a slider that lets them override the current scale factors, from Smaller, to Medium, to Larger. この設定で、 HKCU\コントロール パネルの \デスクトップ\DesktopDPIOverrideレジストリ キー。This setting is configured in the HKCU\Control Panel\Desktop\DesktopDPIOverride registry key.

表 4 HKCU\コントロール パネル\デスクトップ\DesktopDPIOverride 値Table 4 HKCU\Control Panel\Desktop\DesktopDPIOverride Values

キーの値Key value 意味Meaning
<0<0 この値によって、既定値から各表示倍率を減らす (たとえば、既定値が 150% のスケーリングの場合は、-1 は 125% に対応して 100% に-2)。Reduce each display scale factor from the default by this value (for example, if the default was 150% scaling, -1 corresponds to 125%, -2 to 100%).
00 各ディスプレイには、既定値を使用します。Use the default value for each display.
0>0> (前の例では、+1 は 200% のスケーリングに対応するを使用して) この値によって、各表示係数を増やします。Increase each display factor by this value (using the previous example, +1 corresponds to 200% scaling).

このモードでは、すべての表示スケール ファクターは、これら 4 つの値のいずれかに制限されます。100%, 125%, 150%, 200%.All display scale factors in this mode are constrained to be one of these four values: 100%, 125%, 150%, 200%. さらに、スケーリングが適用されると、アプリケーションは予想される 720 以上の有効なラインの解像度 (つまり、物理垂直方向の解像度のスケール ファクターで割った値の表示)。これにより、許可されている表示スケール ファクターの範囲がさらに制限します。In addition, after scaling is applied, applications expect to have at least 720 effective lines of resolution (that is, the physical vertical resolution of the display divided by the scale factor); this can further limit the range of allowed display scale factors. 表 5 に値が表示表示を許可する値のさまざまなサイズが表示されます。Table 5 Display Values shows which values are allowed for different sized displays:

表 5 に値が表示Table 5 Display Values

垂直線Vertical lines サポートされているスケール ファクターSupported scale factors
<900<900 100%100%
> 900 を =、< 1080>= 900 and <1080 100%, 125%100%, 125%
> = 1080 と < 1440>=1080 and <1440 100%, 125%, 150%100%, 125%, 150%
>=1440>=1440 100%, 125%, 150%, 200%100%, 125%, 150%, 200%

Windows 8 の拡大縮小モードでシステム全体のスケールを考慮します。System-wide scale factor in Windows 8 scaling mode

ときに、 、すべてのディスプレイの 1 つのスケール レベルを選択できるようにチェック ボックスがオンで、ユーザーは、各ディスプレイのピクセル密度に関係なく、すべてのディスプレイに適用されるスケール ファクターを指定できます。When the Let me choose one scaling level for all my displays checkbox is checked, the user can specify a scale factor that applies to all displays, regardless of each display’s pixel density. カスタム設定を使用すると、ユーザーは (100% ~ 500%) の範囲に制限は 100%、125%、150%、200%、以外の値を選択できます。By using the custom setting, the user can select values other than 100%, 125%, 150%, 200%, although they are limited to the range (100%-500%). この設定で、 HKCU\コントロール パネルの \デスクトップ\LogPixelsレジストリ キー。This setting is configured in the HKCU\Control Panel\Desktop\LogPixels registry key.

表 6. HKCU\コントロール パネル\デスクトップ\LogPixels 値Table 6 HKCU\Control Panel\Desktop\LogPixels Values

キーの値Key value 意味Meaning
9696 100% がすべてのディスプレイのスケーリング100% scaling on every display
120120 125% がすべてのディスプレイのスケーリング125% scaling on every display
144144 150% がすべてのディスプレイのスケーリング150% scaling on every display
192192 すべてのディスプレイのスケーリングを 200%200% scaling on every display
<その他 ><other> <その他 > 96/100 のすべてのディスプレイのスケーリング<other> 96/100 scaling on every display

関連トピックRelated topics

高 DPI アプリケーションを開発するためのドキュメントDocumentation for developing High DPI applications

IT プロフェッショナル向けの高 DPI サポートHigh DPI Support for IT Professionals