Настроить разные DPI на монитор в Windows 10

1526
Weckar E.

Я только что перешел на настройку с двумя дисплеями: дисплей 4K и 720p. Оба имеют совершенно разные DPI. Похоже, что Windows 10 интерпретирует оба с одинаковым DPI, поэтому масштабирование не работает ни для одного из них. Есть ли способ настроить параметр DPI для каждого дисплея?

Я понимаю, что есть более старые вопросы по этому поводу, но меня интересует текущая ситуация

2
Спасибо за редактирование. Вы правы в том, что пересмотренная формулировка лучше содержит суть проблемы. Weckar E. 6 лет назад 0

2 ответа на вопрос

3
magicandre1981

Откройте приложение настроек, щелкнув правой кнопкой мыши на рабочем столе и выберите Display settings

enter image description here

Здесь выберите каждый монитор и в раскрывающемся списке выберите масштабирование DPi (100 = 96 точек на дюйм). Это значение можно изменить для каждого монитора.

enter image description here

В Windows 10 v1703 MS улучшила масштабирование DPI, так что перемещение приложений между мониторами с разными DPI работает лучше.

Сначала я попробовал это сделать, но текст в приложениях на меньшем экране положительно крошечный, хотя его масштабирование увеличено до максимума - и до двойного экрана это выглядело нормально. Weckar E. 6 лет назад 0
1
Weckar E.

Мне действительно удалось решить мою собственную проблему. Используя метод, чтобы сделать некоторые проблемные приложения не поддерживающими dpi, приложения-нарушители теперь отлично выглядят на обоих экранах.

Если эта ссылка исчезнет, ​​метод будет примерно следующим: измените реестр, чтобы он предпочитал внешние файлы манифеста для приложения (1), и оттуда предоставьте приложению-нарушителю файл манифеста, переопределяющий осведомленность о dpi (2):

1.
В regedit введите следующий раздел:

HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > SideBySide 

Оказавшись там, добавьте новый DWORD32 с именем PreferExternalManifest и значением 1.

2.
Для каждого приложения-нарушителя теперь вам необходимо предоставить собственный файл манифеста, который, к счастью, может быть одинаковым, за исключением имени.
В папке, в которой находится файл .exe приложения, поместите файл с именем [ИМЯ ПРИЛОЖЕНИЯ] .exe.manifest.
Пример рабочего содержимого для такого файла приведен ниже.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">  <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"> </assemblyIdentity> </dependentAssembly> </dependency>  <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"> </assemblyIdentity> </dependentAssembly> </dependency>  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo>  <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware> </asmv3:windowsSettings> </asmv3:application>  </assembly> 

Наконец, запустите или перезапустите приложение, чтобы проверить результаты.

* сменить реестр * ... как именно? * предоставьте приложению-манифесту файл манифеста * ... опять же, как? Пожалуйста, отредактируйте эту информацию в своем ответе, чтобы сделать его полным, самостоятельным ответом. Twisty Impersonator 6 лет назад 0
@ Твисти Я не уверен, смогу ли я сделать это без ответа на вопиющий плагиат - особенно с длиной предоставленного файла. Weckar E. 6 лет назад 0
Пока вы цитируете свой источник, вы не подвергаетесь риску плагиата. Конечно, хотя эти два действия могут быть обобщены достаточно подробно, чтобы помочь будущим посетителям в случае утери ссылки, которую вы указали (именно поэтому мы запрашиваем автономные ответы на Stack Exchange). Twisty Impersonator 6 лет назад 0
@ Твисти Я считаю, что стандарты сильно различаются между сайтами SE. Вышеизложенное больше нравится Superuser? Weckar E. 6 лет назад 0
Выглядит хорошо. Спасибо за ценный ответ. Надеюсь увидеть вас больше в будущем! Twisty Impersonator 6 лет назад 0
вы столкнулись с [проблемой XY] (https://meta.stackexchange.com/a/66378), вы запросили X (изменить DPI), но хотите решить Y (отключить масштабирование DPI для приложения). Наши хрустальные шары могут видеть то, что вы хотите. В следующий раз спросите это правильно. Для 1703 также [добавьте эту запись] (https://pastebin.com/dzF1mm1g) после отключения DPIware в манифесте, чтобы включить новое масштабирование и посмотреть, выглядит ли ваше приложение лучше сейчас magicandre1981 6 лет назад 0
@ magicandre1981 Я нашел альтернативное косметическое решение после определения того, что я хочу, скорее всего, невозможно. Это вряд ли X / Y. Weckar E. 6 лет назад 0
Хорошо. Вы добавили запись GDIscaling? теперь приложение лучше читать? magicandre1981 6 лет назад 0
@ magicandre1981 Я не могу сказать разницу с или без. Weckar E. 6 лет назад 0
Вы обновились до v1703 / Обновление создателей? это новое в 1703 году magicandre1981 6 лет назад 0
@ magicandre1981 у меня не было. Не будучи создателем, я не видел особого смысла. Я сообщу после того, как я сделаю. Weckar E. 6 лет назад 0
имя это маркетинговая фигня. обновите его, чтобы получить [улучшения DPI] (https://blogs.windows.com/buildingapps/2017/04/04/high-dpi-scaling-improvements-desktop-applications-windows-10-creators-update/) magicandre1981 6 лет назад 0
Вы установили 1703 Обновление Создателей? magicandre1981 6 лет назад 0

Похожие вопросы