Escalado de pantalla por aplicación en Windows 11: cómo forzar el DPI correcto
🔍 WiseChecker

Escalado de pantalla por aplicación en Windows 11: cómo forzar el DPI correcto

Solución rápida: Abre las propiedades del .exe de la aplicación, ve a Compatibilidad → Cambiar la configuración de PPP alta, marca Anular el comportamiento de escalado de PPP alto y establece el escalado en Sistema (mejorado) — esto anula la configuración global de Pantalla para esa aplicación en concreto.

Configuraste Windows 11 al 150 % de escalado para que el texto de tu monitor 4K sea legible, pero una aplicación específica —normalmente una herramienta Win32 heredada o una app antigua de Java/Qt— se ve borrosa, demasiado grande o con botones cortados. El resto del sistema se ve bien; esta aplicación necesita una configuración de PPP diferente. Windows 11 admite anulaciones de PPP por aplicación desde Creators Update, pero los controles están ocultos.

Síntoma: Una aplicación específica aparece borrosa, demasiado grande o con elementos de interfaz truncados cuando el escalado global de PPP está por encima del 100 %.
Afecta a: Windows 11 en pantallas de PPP alto (4K, 5K o 2K con escalado del 125–200 %).
Tiempo de solución: ~3 minutos por aplicación.

ADVERTISEMENT

Qué causa esto

Windows indica a cada aplicación, al iniciarse, a qué PPP debe renderizar. Las aplicaciones modernas responden con un escalado vectorial perfecto (reconocimiento PerMonitorV2). Las aplicaciones más antiguas ignoran la solicitud y renderizan a 96 PPP —lo que Windows luego escala como mapa de bits, produciendo desenfoque—, o aceptan el PPP pero diseñan su interfaz asumiendo 96 PPP, lo que genera fuentes demasiado grandes en botones pequeños.

Una anulación por aplicación indica a Windows que deje que la aplicación gestione el PPP por sí misma (la opción Aplicación), que Windows la escale como un mapa de bits limpio (Sistema), o que Windows la escale con mayor nitidez de texto GDI para controles Win32 heredados (Sistema (mejorado)).

Método 1: Establecer el PPP por aplicación desde la pestaña Compatibilidad del ejecutable

La ruta estándar. Funciona para cualquier .exe que puedas localizar en el disco.

  1. Haz clic derecho en el acceso directo de la aplicación en el escritorio y elige Abrir ubicación del archivo. (Para los accesos directos del menú Inicio, esto te lleva al acceso directo; haz clic derecho en el acceso directo y elige Abrir ubicación del archivo de nuevo para llegar al .exe real).
  2. Haz clic derecho en el archivo .exe y elige Propiedades → Compatibilidad.
  3. Haz clic en Cambiar la configuración de PPP alta.
  4. Marca Anular el comportamiento de escalado de PPP alto. Escalado realizado por: y elige una opción:
    • Aplicación — para aplicaciones que se escalan a sí mismas pero entran en conflicto con Windows.
    • Sistema — para aplicaciones heredadas. Produce un escalado limpio, con un ligero desenfoque en el texto.
    • Sistema (mejorado) — para aplicaciones heredadas solo GDI. Texto más nítido, pero rompe algunos controles personalizados.
  5. Haz clic en Aceptar dos veces. Cierra la aplicación por completo y vuelve a iniciarla.

Si Sistema (mejorado) hace que la aplicación se vea bien pero un cuadro de diálogo concreto aparece mal, cambia a Sistema. La disyuntiva es nitidez del texto frente a fidelidad del diseño de los controles.

ADVERTISEMENT

Método 2: Forzar el reconocimiento PerMonitorV2 con un manifiesto

Para aplicaciones que se ven bien en tu monitor principal pero se rompen en cuanto las arrastras a un monitor secundario con PPP diferente, necesitas el comportamiento PerMonitorV2. La pestaña Compatibilidad no llega a esto: necesitas un archivo de manifiesto externo.

  1. Abre un editor de texto como Administrador (Bloc de notas → Ejecutar como administrador).
  2. Crea un archivo nuevo llamado YourAppName.exe.manifest en la misma carpeta que el .exe.
  3. Pega este contenido (reemplaza el nombre del ensamblado por el nombre del archivo .exe sin extensión):
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
          <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness>
        </windowsSettings>
      </application>
    </assembly>
  4. Abre el Editor del Registro (regedit) y navega a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide.
  5. Crea un nuevo DWORD llamado PreferExternalManifest y establece su valor en 1.
  6. Reinicia la aplicación. Windows ahora lee el manifiesto externo antes de comprobar el integrado y aplica el reconocimiento PerMonitorV2.

Esta es la solución más limpia para aplicaciones que se ven bien en la pantalla 4K integrada del portátil pero se vuelven borrosas al conectarlo a un monitor externo 1080p.

Método 3: Usar una escala fija mediante la anulación de PPP heredada (Registro)

Para aplicaciones que las opciones de la pestaña Compatibilidad no solucionan —normalmente aplicaciones MFC o Delphi muy antiguas— puedes fijar una escala concreta a través del Registro. Esto fuerza a Windows a renderizar la aplicación a un PPP específico independientemente del monitor.

  1. Abre el Editor del Registro y navega a HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers. Crea la clave Layers si no existe.
  2. Crea un nuevo Valor de cadena. Establece el nombre con la ruta completa del .exe de la aplicación (por ejemplo, C:\Program Files (x86)\OldApp\app.exe).
  3. Establece los datos del valor según lo que quieras:
    • ~ HIGHDPIAWARE — permite que la aplicación gestione el PPP por sí misma.
    • ~ DPIUNAWARE — fuerza la renderización a 96 PPP, Windows escala como mapa de bits.
    • ~ GDIDPISCALING DPIUNAWARE — escalado GDI heredado, equivalente a Sistema (mejorado).
  4. Cierra el Editor del Registro. Reinicia la aplicación.

Este es el último recurso porque el cambio en el Registro se aplica por usuario y no te acompaña en la itinerancia. Si la aplicación se inicia con otra cuenta o mediante una tarea programada, la anulación no se aplicará.

ADVERTISEMENT

Cómo verificar que la solución funcionó

  • Inicia la aplicación y confirma que los elementos de la interfaz (botones, cuadros de diálogo, menús) aparecen al mismo tamaño físico que el resto de Windows.
  • Arrastra la aplicación a un segundo monitor con PPP diferente. El texto debería volver a renderizarse con nitidez en uno o dos segundos; no debería permanecer borroso.
  • Ejecuta Administrador de tareas → Detalles, haz clic derecho en cualquier encabezado de columna, elige Seleccionar columnas y añade Reconocimiento de PPP. La aplicación ahora debería mostrar Por monitor (V2) o Sistema según el método que hayas usado.

Si nada de esto funciona

Si los tres métodos fallan, es probable que la aplicación esté vinculada a un framework extremadamente antiguo (de la era anterior a Windows Vista) o que use un kit de ventanas no estándar. Las dos opciones restantes son: (1) ejecutar la aplicación dentro de un Windows Sandbox o una cuenta de usuario dedicada con el escalado global establecido al 100 % (la aplicación se verá diminuta pero nítida a resolución nativa), o (2) comprobar si existe una versión más reciente de la aplicación con compatibilidad adecuada con PerMonitorV2; muchas aplicaciones pequeñas de ISV publicaron una versión compatible con PPP entre 2019 y 2023. Para aplicaciones comerciales que aún están en desarrollo, informa de un error al proveedor; para software abandonado, tu única vía es la virtualización con escalado al 100 %.

Conclusión: Las anulaciones de PPP por aplicación en Windows 11 se aplican en tres niveles: opciones de la pestaña Compatibilidad para la mayoría de los casos, manifiestos externos para casos límite con varios monitores y anulaciones del Registro para el resto.

ADVERTISEMENT