Freigeben über


DPI-bezogene APIs und Registrierungseinstellungen

Die folgenden Abschnitte erläutern Registrierungsschlüssel und Systemparameter, auf die Ihre Postinstallationsskripts möglicherweise zugreifen müssen.

In diesem Artikel:

Native Auflösung der primären Anzeige

Tabelle 1 – Windows 8.1-Skalierungsstufen enthält Informationen zur Windows 8.1-Skalierungsstufe für eine Reihe gängiger Displays. Panel DPI gibt die physische Pixeldichte des Panels an, und die Skalierungsstufe gibt den Skalierungsfaktor an, der für diese Anzeige verwendet wird.

Tabelle 1 – Windows 8.1-Skalierungsstufen

Anzeigegröße Anzeigeauflösung Horizontal (Pixel) Vertikal (Pixel) Panel-DPI Skalierungsstufe
10,6 Zoll FHD 1920 1080 208 150%
10,6 Zoll Festplatte 1366 768 148 100 %
11,6 Zoll WUXGA 1920 1200 195 150%
11,6 Zoll Festplatte 1366 768 135 100 %
13,3 Zoll WUXGA 1920 1200 170 150%
13,3 Zoll QHD 2560 1440 221 200 %
13,3 Zoll Festplatte 1366 768 118 100 %
15,4 Zoll FHD 1920 1080 143 125%
15,6 Zoll QHD+ 3200 1800 235 200 %
17 Zoll FHD 1920 1080 130 125%
23 Zoll QFHD (4K) 3840 2160 192 200 %
24 Zoll QHD 2560 1440 122 125%

Um diese Informationen für jedes Gerät programmgesteuert zu finden, können Sie ein Hilfsprogramm schreiben, das Daten zurückmeldet. Die native primäre Auflösung wird abgerufen, indem die API-Funktion GetDeviceCaps() aufgerufen wird, wobei der hdc für den Desktop sowie die Indizes HORZRES und VERTRES verwendet werden:

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

Weitere Informationen zu GetDC finden Sie unter GetDC()-Funktion.

DPI-Skalierungsfaktor der primären Anzeige

Ebenso können Sie die Pixeldichte mithilfe der LOGPIXELSX- und LOGPIXELSY-Indizes abrufen:

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

Diese Ergebnisse werden in einem Koordinatensystem zurückgegeben, in dem 96 ppi 100 % entspricht, wie in Tabelle 2 – DPI-Skalierungsfaktoren dargestellt.

Tabelle 2 – DPI-Skalierungsfaktoren

DPI Skalierungsfaktor
96 100
120 125
144 150
192 200

Hinweis

Diese API gibt je nach DPI-Erkennungsmodus Ihrer Anwendung unterschiedliche Ergebnisse zurück. Das Konfigurieren des Erkennungsmodus erfordert das Hinzufügen von XML zum Anwendungsmanifest, wie unten beschrieben:

DPI-Erkennungsmodus Manifesteinstellung Rückgabewert
Keine Keine  96 für alle Displays unabhängig vom Skalierungsfaktor
System-DPI-Erkennung <dpiAware>True</dpiAware> Der DPI-Wert der primären Anzeige zur Zeit, zu der die Windows-Sitzung gestartet wurde (als der Benutzer sich zum ersten Mal bei Windows angemeldet hat)
Monitorspezifische DPI-Erkennung <dpiAware>True/PM</dpiAware> Der DPI-Wert der primären Anzeige zur Zeit, zu der die Windows-Sitzung gestartet wurde (als der Benutzer sich zum ersten Mal bei Windows angemeldet hat). Um den DPI-Wert der Anzeige abzurufen, auf der sich die Anwendung befindet, verwenden Sie GetWindowDpi() oder GetDpiForMonitor().

Weitere Informationen zu dieser Manifesteinstellung finden Sie unter SetProcessDPIAware-Funktion.

Skalierungsmodus

Die Benutzeroberfläche Systemsteuerung\Darstellung und Personalisierung\Anzeige enthält das Kontrollkästchen Lassen Sie mich eine Skalierungsstufe für alle meine Displays auswählen, die steuert, ob das System einen einzelnen Skalierungsfaktor auf alle Displays anwendet (wie in Windows 8 und früheren Versionen von Windows) oder verschiedene Skalierungsfaktoren, die die Pixeldichte jeder Anzeige berücksichtigen (die Windows 8.1 Standardeinstellung). Dieses Kontrollkästchen konfiguriert den Registrierungsschlüssel HKCU\Systemsteuerung\Desktop\Win8DpiScaling in Windows 8.1.

Tabelle 3 – HKCU\Systemsteuerung\Desktop\Win8DpiScaling Values

Schlüsselwert Bedeutung
0 Verschiedene Skalierungsfaktoren für jede Anzeige: Windows 8.1 Standard. Inhalte, die von einer Anzeige in eine andere verschoben werden, werden in der richtigen Größe dargestellt, jedoch wird dies teils durch Skalierung von Bitmaps erreicht.
1 Der gleiche Skalierungsfaktor wird auf alle Displays angewendet: Verhalten von Windows 8 und früheren Windows-Versionen. Inhalte, die von einer Anzeige in eine andere verschoben werden, werden möglicherweise in der falschen Größe dargestellt.

Skalierungsaußerkraftsetzung im Windows 8.1-Skalierungsmodus

Wenn das Kontrollkästchen Lassen Sie mich eine Skalierungsstufe für alle meine Anzeigen auswählen aktivieren deaktiviert ist und das System im Windows 8.1-Skalierungsmodus ausgeführt wird, wird dem Benutzer ein Schieberegler bereitgestellt, mit dem sie die aktuellen Skalierungsfaktoren außer Kraft setzen können, von „Kleiner“ über „Mittel“ bis „Größer“. Diese Einstellung ist im Registrierungsschlüssel HKCU\Systemsteuerung\Desktop\DesktopDPIOverride konfiguriert.

Tabelle 4 – HKCU\Systemsteuerung\Desktop\DesktopDPIOverride-Werte

Schlüsselwert Bedeutung
<0 Verringern von jeden Skalierungsfaktor vom Standardwert um diesen Wert (wenn z. B. die Standardskalierung 150 % betrug, würde -1 sie auf 125 % ändern oder -2 auf 100 %).
0 Verwenden Sie den Standardwert für jede Anzeige.
0> Erhöhen von jedem Anzeigefaktor um diesen Wert (wie beim vorherigen Beispiel entspricht +1 der Skalierung 200 %).

Alle Anzeigeskalafaktoren in diesem Modus sind auf einen der folgenden vier Werte beschränkt: 100 %, 125 %, 150 %, 200 %. Darüber hinaus erwarten Anwendungen nach dem Anwenden der Skalierung mindestens 720 effektive Auflösungslinien (also die physische vertikale Auflösung der Anzeige, die durch den Skalierungsfaktor geteilt wird); Dies kann den Bereich der zulässigen Anzeigeskalierungsfaktoren weiter einschränken. Tabelle 5 – Anzeigewerte zeigen an, welche Werte für unterschiedliche große Displays zulässig sind:

Tabelle 5 – Anzeigewerte

Vertikale Linien Unterstützte Skalierungsfaktoren
<900 100 %
>= 900 und <1080 100 %, 125 %
>= 1080 und <1440 100 %, 125 %, 150 %
>= 1440 100 %, 125 %, 150 %, 200 %

Systemweiter Skalierungsfaktor im Windows 8-Skalierungsmodus

Wenn die Lassen Sie mich eine Skalierungsstufe für alle meine Anzeigen auswählen aktivieren aktiviert ist, kann der Benutzer einen Skalierungsfaktor angeben, der für alle Displays gilt, unabhängig von der Pixeldichte der einzelnen Displays. Mithilfe der benutzerdefinierten Einstellung kann der Benutzer andere Werte als 100 %, 125 %, 150 %, 200 % auswählen, auch wenn sie auf den Bereich von 100 % – 500 % beschränkt sind (). Diese Einstellung ist im Registrierungsschlüssel HKCU\Control Panel\Desktop\LogPixels konfiguriert.

Tabelle 6 – HKCU\Systemsteuerung\Desktop\LogPixels-Werte

Schlüsselwert Bedeutung
96 Skalierung von 100 % auf jedem Bildschirm
120 Skalierung von 125 % auf jedem Bildschirm
144 Skalierung von 150 % auf jedem Bildschirm
192 Skalierung von 200 % auf jedem Bildschirm
<other> <other> Skalierung von 96/100 % auf jedem Bildschirm

Dokumentation zum Entwickeln von Anwendungen mit hohem DPI-Wert

Unterstützung hoher DPI-Werte für IT-Fachleute