Экран с высоким разрешением и Windows: как заставить программы вести себя как на экранах с низким разрешением?

Я использую Windows 10 на экране ноутбука с высоким разрешением. Некоторые программы поддерживают экран высокого разрешения и выглядят резкими. Некоторые из них не выглядят и выглядят расплывчатыми, но все равно выглядят правильными. Я доволен обоими.

Но есть и те программы, которые поддерживают лишь небольшую поддержку высокой настройки DPI: они либо выглядят крошечными, либо некоторые элементы окна крошечными, а другие имеют нормальный размер. Это делает некоторые из этих программ непригодными для использования, другие очень неприятными для использования.

Есть ли способ попросить Windows обмануть эти программы, думая, что они работают на экране с низким разрешением, и затем пропорционально масштабировать их? Я бы предпочел, чтобы все элементы окна отображались с правильным размером, даже если это означает, что они станут размытыми.

Чтобы избежать путаницы: мне известно о параметре совместимости "Отключить масштабирование экрана при настройках высокого разрешения" в свойствах приложения, но это не то, что мне нужно. Я прошу об обратном: включите размытое масштабирование и заставьте приложение поверить, что оно работает на экране с низким разрешением.

1 ответ

Решение

Давайте разберемся с большими пушками.

Загрузите и установите набор средств для обеспечения совместимости приложений. Это включает в себя программу под названием "Администратор совместимости", которая выпускается в двух версиях: 32-разрядной и 64-разрядной. Запустите приложение с той же разрядностью, что и у приложения, которое вы хотите взломать.

Предыстория: многие приложения утверждают, что поддерживают определенную функцию, но затем портят реализацию. Microsoft постоянно занимается этим, и они создали инфраструктуру совместимости, чтобы повторно использовать исправления для распространенных проблем. Эти исправления реализованы в виде прокладок, перехватывающих вызовы Windows API. Мы будем использовать прокладку, которая эффективно отменяет декларацию приложения о осведомленности о DPI. Другие прокладки делают причудливые / настраиваемые вещи (см. CorrectFilePaths), а некоторые просто врут приложению о своей среде (вроде ForceAdminAccess).

В нижней части левой панели администратора совместимости вы увидите новую запись в пользовательских базах данных. Щелкните правой кнопкой мыши и выберите " Создать" → " Режим совместимости". Назовите это как-то (я использовал DpiMisbehavior). В левом списке найдите DPIUnaware и нажмите > кнопка, чтобы включить его. Нажмите OK, как только вы это сделали.

Снова щелкните правой кнопкой мыши на пользовательской базе данных и выберите " Создать" → " Исправление приложения". Укажите название программы и поставщика (это не имеет большого значения) и выберите основной EXE-файл приложения. (Именно здесь важна разрядность администратора совместимости.) После этого нажмите Далее.

В дополнительных режимах совместимости прокрутите вниз и найдите режим совместимости, который вы создали минуту назад. Проверьте свою коробку. Сделайте тестовый прогон, если хотите, затем нажмите Next.

Now, strictly speaking, you didn't need to create a compatibility mode because you can apply specific fixes here. I had you do that in case you need to add additional fixes to that mode later so they'll apply to all apps that you put under that mode. So you can just hit Next without doing anything on the Compatibility Fixes step.

Matching information is used to identify what app a program (EXE) represents. (It would be rather unfortunate if fixes were applied to programs that don't need them.) All checked entries must match for a program to get the fix. The Compatibility Administrator pulled these criteria values out of the EXE you specified earlier. The defaults are fine, or you can change them if you feel strongly about such things. Hit Finish when satisfied.

Repeat the Application Fix creation stuff for every program that needs it. Then press Save in the toolbar. Give it any name you want; я использовал DPI Repair, Then save it wherever in the file system you want. You can use Open toolbar item and select that file if you need to modify it in the future.

Finally, right-click the newly-named custom database, and choose Install.

О да.

If, in the future, you do need to modify the compatibility database, just open it up, make the appropriate changes, hit Save, then do Reinstall; it'll just go right over the old version. In fact, you can copy this database to another computer and use the Compatibility Administrator to install it there without having to recreate it.

Optional entertainment: Expand the Applications entry under System Database to see a list of programs Microsoft had to fix with this infrastructure. Clicking on a program's entry will show you what fixes and compatibility modes were applied. Under Compatibility Fixes, you can see a full list of what fixes your computer can use.

Другие вопросы по тегам