Windows 7 не может отключить масштабирование DPI / PPI для приложения


8

У меня Windows 7 с масштабированием DPI, установленным на 120 DPI. Это создает некоторые проблемы со старыми приложениями, такими как обрезанный текст, размытая графика или слишком большой текст. Я бы хотел отключить масштабирование DPI для этих приложений. Я пробовал это: application.exe "контекстное меню -> свойства -> совместимость -> отключить масштабирование дисплея при высоких настройках DPI".

Этот параметр ничего не меняет. Приложение по-прежнему отображается как 120 DPI, а не 96 DPI. Я также проверил это на новой, не испорченной Windows 7 на виртуальной машине - такое же поведение.

Вопрос: как заставить одно приложение использовать 96 DPI другим, РАБОЧИМ, способом?

Ответы:


4

У меня была та же самая проблема, и выбор любого из флажков не имел никакого значения. Вот что я сделал, чтобы исправить это:

  1. Перейдите в «Панель управления \ Оформление и персонализация \ Отображение» и нажмите «Установить пользовательский размер текста (DPI)». Убедитесь, что флажок «Использовать масштабирование DPI в стиле Windows XP» НЕ установлен. Выйдите, чтобы применить изменения, если это необходимо.

  2. Вместо того, чтобы выбирать параметры совместимости самостоятельно, запустите мастер и позвольте Windows выбрать его для вас. Вы можете сделать это, щелкнув правой кнопкой мыши значок программы и выбрав в меню «Устранение неполадок совместимости». Это исправило отсечение дисплея для меня. Текст немного нечеткий, но я могу жить с ним; Я просто счастлив, что вижу все это. :)


1
на моем компьютере эта опция помечена, и я не могу снять ее :(
kokbira

2

Я понимаю, что это очень старый вопрос, но я только что нашел решение. Переключите тему (Панель управления> Все элементы панели управления> Персонализация) с темы Aero на тему Basic, и масштабирование для каждого приложения будет работать.


1

просто предположение, но, может быть, если вы запустите приложение в режиме совместимости с XP или отключите настройки визуальной темы для этого приложения, оно проигнорирует настройки DPI?


Все флажки (и опции раскрывающегося списка) на вкладке «совместимость» не решают эту проблему. Я уже попробовал это на двух машинах.
pawel159

0

Ответ mastseller (1. answer) работает, но большая часть текста приложения становится нечеткой :(. НО теперь работает флажок «Использовать масштабирование DPI в стиле Windows XP». Так что если есть какое-то приложение, где нечеткое в правильном нарушении, чем Небольшой размер, сделайте следующее: 1) Найдите файл запуска приложения (.exe, .com) в файловом менеджере, ИЛИ его значок (или, если приложение запущено, вы также можете найти его в диспетчере задач Windows). 2) Щелкните правой кнопкой мыши и выберите свойство. 3) Нажмите на вкладку «Совместимость». 4) Установите флажок «Использовать масштабирование DPI в стиле Windows XP». 5) Перезапустите приложение (оно работает).

Вы должны делать со всеми нечеткими приложениями одно за другим, но это работает.


0

Если вы обнаружите, что ваш Disable display scaling on high DPI settingsфлажок недоступен для 64-разрядного приложения, например:

введите описание изображения здесь

это может быть связано с тем, что Microsoft построила логику, чтобы запретить этот параметр для 64-битных приложений В этом случае я рекомендую вам следовать инструкциям на https://superuser.com/a/1018284/460302 и получить набор средств для обеспечения совместимости приложений .

В вышеупомянутом ответе пользователь Ben N подробно рассказывает о логике и инфраструктуре Windows для работы с «несовместимыми» приложениями. Его процедура позволяет мне управлять совместимостью по сигнатуре приложения, так что даже если я обновлю приложение и его номер версии и / или изменения в реестре, я все еще буду защищен.

Например, здесь была моя подпись для Rainmeter 3.3.0.2519:

введите описание изображения здесь

Когда я обновил Rainmeter, это перестало работать. Поэтому я создал новую подпись без номеров версий:

введите описание изображения здесь

..и мой новый 64-битный релиз Rainmeter отображается правильно.

Как говорит Бен Н , давай выберем большие пушки .


0

У меня была та же проблема, и «Вариант три» (см. Ниже) с сайта sevenforums.com помог мне. Мне не удалось установить необходимые настройки для запуска приложения с удаленного сервера в диалоговом окне свойств.

Добавьте HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersи / или HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersновое «строковое значение».

Измените имя на полный путь вашего приложения (т. Е. \\server\dir\app.exeИли c:\dir\app.exe) и задайте «Значение данных» в соответствии с этими параметрами (возможны несколько настроек, которые разделяются пробелом):

# Compatibility Mode        Data Value
Windows 95                  WIN95
Windows 98 / Windows Me     WIN98
Windows NT 4.0 (SP 5)       NT4SP5
Windows 2000                WIN2000
Windows XP (SP 2)           WINXPSP2
Windows XP (SP 3)           WINXPSP3
Windows Server 2003 (SP 1)  WINSRV03SP1
Windows Server 2008 (SP 1)  WINSRV08SP1
Windows Vista               VISTARTM
Windows Vista (SP 1)        VISTASP1
Windows Vista (SPk 2)       VISTASP2
Windows 7                   WIN7RTM

#Settings                           Data Value
Run in 256 colors                   256Color
Run in 640 x 480 screen resolution  640x480
Disable visual themes               DISABLETHEMES
Disable desktop composition         DISABLEDWM
Disable display scaling on 
  high DPI settings                 HIGHDPIAWARE
Run this program as Admin           RUNASADMIN

С этими настройками я смог запустить свое приложение так:

Имя: \\server\dir\app.exe

Значение данных: DISABLETHEMES HIGHDPIAWARE RUNASADMIN

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.