Compartir a través de


API relacionadas con PPP y configuración del Registro

Si necesita realizar personalizaciones de implementación, en las secciones siguientes se explican las claves del Registro y los parámetros del sistema a los que podrían tener acceso los scripts posteriores a la instalación.

En este artículo:

Resolución nativa de pantalla principal

La tabla 1 Windows 8.1 Niveles de escalado, aunque no es exhaustiva, proporciona información sobre el nivel de escalado Windows 8.1 para una serie de pantallas comunes. Ppp del panel indica la densidad de píxeles físicos del panel y el nivel de escala indica el factor de escala que se usará para esta pantalla.

Tabla 1 Windows 8.1 niveles de escalado

Tamaño de pantalla Resolución de pantalla Horizontal (píxeles) Vertical (píxeles) Ppp del panel Nivel de escalado
10.6" FHD 1920 1080 208 150%
10.6" Disco duro 1366 768 148 100%
11.6" WUXGA 1920 1200 195 150%
11.6" Disco duro 1366 768 135 100 %
13.3" WUXGA 1920 1200 170 150%
13.3" QHD 2560 1440 221 200%
13.3" Disco duro 1366 768 118 100%
15.4" FHD 1920 1080 143 125%
15.6" QHD+ 3200 1800 235 200%
17" FHD 1920 1080 130 125%
23" QFHD (4K) 3840 2160 192 200%
24" QHD 2560 1440 122 125%

Para buscar mediante programación esta información para cualquier dispositivo, puede escribir un programa de utilidad que notifique los datos. La resolución principal nativa se recupera mediante una llamada a la función GetDeviceCaps() de la API, mediante hdc para el escritorio y los índices HORZRES y VERTRES:

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

Para obtener más información sobre GetDC, vea Función GetDC().

Factor de escala de PPP de visualización principal

De forma similar, puede obtener la densidad de píxeles mediante los índices LOGPIXELSX y LOGPIXELSY:

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

Estos resultados se devuelven en un sistema de coordenadas en el que el 96 corresponde al 100 %, como se muestra en la tabla 2 Factores de escala de PPP.

Tabla 2 Factores de escala de PPP

ppp Factor de escala
96 100
120 125
144 150
192 200

Nota

Esta API devolverá resultados diferentes en función del modo de reconocimiento de PPP de la aplicación. La configuración del modo de reconocimiento requiere agregar XML al manifiesto de aplicación, como se detalla a continuación:

Modo de reconocimiento de PPP Configuración del manifiesto Valor devuelto
None None  96 para todas las pantallas, independientemente del factor de escala
Reconocimiento de PPP del sistema <pppAware>True</pppAware> PPP de la pantalla principal en el momento en que se inició la sesión de Windows (cuando el usuario inició sesión por primera vez en Windows)
reconocimiento de PPP de Per-Monitor <pppAware>True/PM</pppAware> Ppp de la pantalla principal en el momento en que se inició la sesión de Windows (cuando el usuario inició sesión por primera vez en Windows). Para obtener el PPP de la pantalla en la que se encuentra la aplicación, use GetWindowDpi() o GetDpiForMonitor()

Para obtener más información sobre esta configuración de manifiesto, vea Función SetProcessDPIAware.

Modo de escalado

La Panel de control\ Apariencia y Personalización\Mostrar interfaz de usuario (UI) incluye una casilla: Permitirme elegir un nivel de escalado para todas mis pantallas, que controla si el sistema aplica un solo factor de escala a todas las pantallas (como en Windows 8 y versiones anteriores de Windows), o diferentes factores de escala que tienen en cuenta la densidad de píxeles de cada pantalla (el Windows 8.1 valor predeterminado). Esta casilla configura la clave del Registro HKCU\Panel de control\Desktop\Win8DpiScaling en Windows 8.1.

Tabla 3 HKCU\Panel de control\Desktop\Win8DpiScaling Values

Valor de clave Significado
0 Diferentes factores de escala para cada pantalla: Windows 8.1 valor predeterminado. El contenido que se mueve de una pantalla a otra será el tamaño correcto, pero se puede escalar a mapa de bits.
1 Se aplica el mismo factor de escala a todas las pantallas: comportamiento de Windows 8 y versiones anteriores de Windows. El contenido que se mueve de una pantalla a otra podría ser el tamaño incorrecto.

Invalidación de escalado en modo de escalado Windows 8.1

Cuando la casilla Permitirme elegir un nivel de escalado para todas mis pantallas está desactivada y el sistema se ejecuta en el modo de escalado Windows 8.1, el usuario se proporciona con un control deslizante que les permite invalidar los factores de escala actuales, de Menor a Medio, a Mayor. Esta configuración se configura en la clave del Registro HKCU\Panel de control\Desktop\DesktopDPIOverride.

Tabla 4 HKCU\Panel de control\Desktop\DesktopDPIOverride Valores

Valor de clave Significado
<0 Reduzca cada factor de escala de visualización del valor predeterminado por este valor (por ejemplo, si el valor predeterminado era del 150 % de escala, -1 corresponde al 125 %, -2 a 100 %).
0 Use el valor predeterminado para cada presentación.
0> Aumente cada factor de visualización por este valor (con el ejemplo anterior, +1 corresponde al escalado del 200 %).

Todos los factores de escala de visualización de este modo están restringidos a ser uno de estos cuatro valores: 100%, 125%, 150%, 200%. Además, después de aplicar el escalado, las aplicaciones esperan tener al menos 720 líneas de resolución efectivas (es decir, la resolución vertical física de la pantalla dividida por el factor de escala); esto puede limitar aún más el intervalo de factores de escala de visualización permitidos. La tabla 5 Valores para mostrar muestra qué valores se permiten para diferentes pantallas de tamaño:

Tabla 5 Valores para mostrar

Líneas verticales Factores de escala admitidos
<900 100 %
>= 900 y <1080 100%, 125%
>=1080 y <1440 100%, 125%, 150%
>=1440 100%, 125%, 150%, 200%

Factor de escala en todo el sistema en modo de escalado de Windows 8

Cuando se activa la casilla Permitirme elegir un nivel de escala para todas mis pantallas , el usuario puede especificar un factor de escala que se aplique a todas las pantallas, independientemente de la densidad de píxeles de cada pantalla. Con la configuración personalizada, el usuario puede seleccionar valores distintos del 100 %, 125 %, 150 %, 200 %, aunque están limitados al intervalo (100 %-500 %). Esta configuración se configura en la clave del Registro HKCU\Panel de control\Desktop\LogPixels.

Tabla 6 HKCU\Panel de control\Desktop\LogPixels Values

Valor de clave Significado
96 Escalado del 100 % en cada pantalla
120 Escalado del 125 % en cada pantalla
144 Escalado del 150 % en cada pantalla
192 Escalado del 200 % en cada pantalla
<other> <otras> escalas de 96/100 en cada pantalla

Documentación para desarrollar aplicaciones de valores altos de PPP

Compatibilidad con valores altos de PPP para profesionales de TI