При використанні моніторів з високою роздільною здатністю (4k DPI) в Windows 10 користувачі часто стикаються з тим, що текст, значки та інші елементи застарілих програм, несумісних з екранними режимами HiDPI, стає занадто дрібним, розмитими і нечитабельним.
Частково ця проблема була виправлена в оновленні Fall Creators Update за рахунок впровадження додаткової підтримки динамічного масштабування DPI, однак при підключенні до робочого столу віддаленого комп'ютера по RDP, проблема масштабування все ще зберігається (все також відсутня підтримка нормального масштабування для клієнта mstsc.exe).
У Windows 8.1 і Windows 10 за замовчуванням локальний DPI передається в RDP підключення, в результаті все значки і текст в такому вікні стають дуже дрібними і погано читаються.
Як обхідного шляху можна використовувати для RDP підключень додаток RDCMan, але є рішення і для рідного клієнта mstsc.exe.
Сенс в тому, що для конкретних додатків можна створити окремий файл маніфесту (.manifest).
Щоб цей функціонал заробив, щоб Windows під час запуску програми намагалася спочатку отримати даний з файлу маніфесту програми. Для цього в гілці реєстру HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SideBySide створити ключ типу DWORD (32 біт) з ім'ям PreferExternalManifest і десятковим значенням 1.
Потім в каталозі % SystemRoot% \ System32 \ (В ньому зберігається клієнт mstsc.exe) потрібно створити файл mstsc.exe.manifest з наступним текстом:
name = "Microsoft.Windows.Common-Controls"
version = "6.0.0.0" processorArchitecture = "*"
publicKeyToken = "6595b64144ccf1df"
language = "*">
name = "Microsoft.VC90.CRT"
version = "9.0.21022.8"
processorArchitecture = "amd64"
publicKeyToken = "1fc8b3b9a1e18e3b">
uiAccess = "false" />
false
Перезавантажте Windows, і спробуйте віддалено підключитися до іншого комп'ютера / сервера за допомогою mstsc.exe. Як ви бачите, вміст RDP вікна тепер відображається нормально.
Аналогічним чином можна створити файл маніфесту для будь-якої програми, який не підтримує нативное масштабування.