Я хотел бы создать сочетание клавиш для быстрого и простого изменения масштаба DPI на моем компьютере путем создания небольшого макроса для запуска при обнаружении сочетания клавиш.
В Windows 8.1 масштаб DPI дисплея рабочего стола можно настроить с помощью панели управления (см. Рисунок ниже), вступая в силу немедленно. В качестве альтернативы масштаб может быть установлен вручную в реестре, но для этого необходимо, чтобы пользователь вошел в систему, а затем перезагрузил компьютер, чтобы получить эффект (и работает только для имитации параметра «один уровень масштабирования для всех моих дисплеев») ,
Как я могу установить масштаб DPI через командную строку или иным образом программно?
windows
command-line
windows-8.1
dpi
high-dpi
FThompson
источник
источник
Let me choose one scaling level...
как установил флажок, поскольку ползунок над ним на моем блокноте выделен серым цветом.Ответы:
Правильный ключ реестра для независимого от монитора масштабирования -
HKCU:\Control Panel\Desktop
со значениемLogPixels
. Дополнительную информацию обо всех параметрах реестра, связанных с DPI, можно найти здесь: http://technet.microsoft.com/en-us/library/dn528846.aspx#system. Также есть информация для случая, когда вы включили различное масштабирование для каждого дисплея ,Я написал крошечный скрипт PowerShell, который изменяет масштаб DPI для всех дисплеев в зависимости от текущего масштабирования и выполняет выход пользователя из системы, поэтому мне просто нужно выполнить скрипт, когда я подключаю свое устройство к другому монитору.
Я думаю, что вы можете изменить его для своих нужд, используя информацию из статьи TechNet.
источник
LogPixels
значения применимо только в том случае, если установлен флажок «Позвольте мне выбрать один уровень масштабирования для всех моих дисплеев», что я наблюдал, когда сам связывался со значениями реестра, но это также подтверждается связанной статьей Technet. Кроме того, ваше решение требует от пользователя выхода из системы; DPI не обновляются без выхода пользователя и повторного входа. Между этими двумя недостатками, ваше решение не совсем работает для меня, но все равно +1 для отличного ответа.HKCU:\Control Panel\Desktop\Win8DpiScaling
для1
. В противном случае он будет использовать масштабный коэффициент по умолчанию и игнорирует значение вLogPixels
.HKCU:\Control Panel\Desktop
внешний видHKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\ScaleFactors
Существует сценарий PowerShell для изменения разрешения экрана, что может помочь. Я понятия не имею, произойдет ли немедленное изменение в Windows 8.1, но, если повезет, этот сценарий может использовать тот же API, что и апплет панели управления.
Полный
Set-ScreenResolution.ps1
сценарий доступен в хранилище сценариев , но он слишком длинный, чтобы воспроизвести его здесь.Его описание автором можно найти в статье:
Hey, Scripting Guy! Как изменить разрешение монитора рабочего стола через Windows PowerShell? ,
Некоторую информацию по его использованию можно найти в статье:
Изменение разрешения экрана с помощью Powershell .
источник