Можно ли изменить масштаб отображения через командную строку?

2236
Justin

У меня есть ноутбук с дисплеем 2560 x 1440, подключенный к 2 внешним мониторам 1080p. Масштабирование в норме нормально, с родным монитором на 125% и мониторами 1080p на 100%, но когда я отсоединяю ноутбук, иногда ноутбук переходит на коэффициент масштабирования 200%, и мне нужно сбросить его вручную в настройках дисплея.

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

Можно ли изменить масштаб отображения через командную строку?

Единственные ключи реестра / команды PowerShell, которые я нашел для этого, требуют выхода из системы, чтобы вступить в силу, что, по-видимому, не нужно, поскольку настройка GUI может вступить в силу немедленно.

1
Вы задаете не по теме вопрос (покупка ПО). Вопросы по поиску рекомендаций по продуктам, услугам или учебным материалам не по теме. См. [По теме] (https://superuser.com/help/on-topic). Попробуйте https://softwarerecs.stackexchange.com/, но сначала прочитайте [Что требуется, чтобы вопрос содержал «достаточно информации»] (https://softwarerecs.meta.stackexchange.com/questions/336/what-is- требуется в обмен на а-вопрос-к-содержат-достаточно-информации). DavidPostill 5 лет назад 0
Затем удалил запрос «утилиты», я просто хотел оставить его открытым на случай, если есть программное обеспечение, которое может легко выполнить эту задачу. Justin 5 лет назад 0

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

2
Pimp Juice IT

Ниже приведен пакетный скрипт, который будет эмулировать нажатия клавиш, чтобы манипулировать графическим интерфейсом, настраивать параметры « Масштаб» и «Макет», а также изменять размер или текст, приложения и другие элементы при запуске. Он используется ms-settings:displayдля открытия экрана дисплея, а затем он нажимает клавишу табуляции один раз и стрелку вверх 5 раз, используя клавиши send для настройки масштаба соответственно. Он будет нажимать Alt + F4 в конце клавиш, чтобы закрыть экран после его завершения. Этот метод создает динамический сценарий vb с помощью пакетного сценария, а затем выполняет сценарий vb с помощью cscript для эмуляции нажатия клавиш клавиатуры.


Пакетный скрипт

Примечание. Просто сохраните его в текстовом файле с расширением .batили .cmdи запустите для запуска.

@ECHO OFF  explorer ms-settings:display ping -n 2 127.0.0.1 > nul  :VBSDynamicBuild SET TempVBSFile=%tmp%\~tmpSendKeysTemp.vbs IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%" ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%" ECHO Wscript.Sleep 500 >>"%TempVBSFile%" ECHO WshShell.SendKeys "" >>"%TempVBSFile%" ECHO Wscript.Sleep 500 >>"%TempVBSFile%" ECHO WshShell.SendKeys "%%" >>"%TempVBSFile%"  CSCRIPT //nologo "%TempVBSFile%" EXIT 

Дополнительные ресурсы

@Justin - Дай мне знать, как дела, когда ты это проверяешь. Возможно, нужно отрегулировать `` и ``, но от большего масштаба до меньшего масштаба в моей системе это была всего одна вкладка, а затем несколько нажатий стрелки вверх, но я поставил 5, потому что он может подняться один раз на 100% больше, и это останется на 100% все еще из того, что я проверял. Число [`#`] рядом с `` или `` указывает, сколько раз нужно нажимать клавишу в графическом интерфейсе, чтобы перейти к каждой опции, поэтому они могут отличаться в вашей системе. но я проверил как мог здесь, и это то, что, кажется, работает для меня. Pimp Juice IT 5 лет назад 0
Отлично. Мне пришлось немного изменить его, чтобы послать больше , но это определенно поможет. Justin 5 лет назад 0

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