Есть ли способ изменить разрешение экрана Windows через командную строку?

28

Я использую программу Microsoft Live Mesh для удаленного доступа к ПК под управлением Windows 7, работающему на 2 экранах: один с разрешением 1920x1080, а другой с разрешением 1920x1200.

Я получаю к ним доступ через старый ноутбук с разрешением 1024x1078. В результате появляются такие крошечные значки / команды, что трудно попробовать изменить разрешение экрана с 2 дисплеев с высоким разрешением на один дисплей с низким разрешением.

Было бы здорово, если бы был способ командной строки сделать это. Или, возможно, есть способ через живую сетку, чтобы сделать это. Любые идеи?

Билл Родман
источник

Ответы:

30

Используйте QRes, затем скажите:

QRes.exe /x:800 /y:600
ясень
источник
Крошечная утилита, которая делает именно то, что мне нужно.
Билл Родман
5
Я объединяю эту утилиту с командой Windows7 DisplaySwitch.exe: «C: \ Windows \ System32 \ DisplaySwitch.exe / internal», чтобы исключительно переключаться на основной монитор.
Билл Родман
Displayswitch.exe также имеет параметры командной строки, которые позволяют создавать ярлыки, которые будут устанавливать определенный режим отображения. / внутренний / клон / продлить / внешний
JJS
5
Не работает с Windows x64.
Фантиус
Последняя версия отлично работает на Windows 10 64-bit. - Не похоже на способ адресации и индивидуальный мониторинг, хотя. Он всегда работает только с основным экраном. - Взлом, который выложили другие (используйте DisplaySwitch), кажется, может сработать, если у вас есть только два монитора ...
BrainSlugs83
17

Это можно сделать с помощью бесплатного инструмента nircmd .
Чтобы изменить отображение на 1024 x 768 с глубиной цвета 24 бита:

nircmd.exe setdisplay 1024 768 24

У nircmd также есть другие очень многочисленные функции.

harrymc
источник
1
если вы используете ноутбук, как мой, который не поддерживает 24-битный цвет. Возможно, вам придется изменить 24 на 32 - nircmd.exe setdisplay 1024 768 32
Джулиан
Почему его не изменили навсегда? Но временное применение?
YumYumYum
8

Я нашел образец сценария Windows Powershell , предоставленный Microsoft Technet, который может изменить разрешение экрана.

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

## This loads the function (defined in another script)
. C:\[YOUR-PATH]\Set-ScreenResolution

## invoke with width and height
Set-ScreenResolution -Width 1680 -Height 1050

(Обратите внимание, что я сохранил скрипт Microsoft как Set-ScreenResolution.ps1)

Затем из командной строки или из Пуск-> Выполнить вы можете вызвать второй скрипт Powershell, который я назвал Invoke-Set-ScreenResolution.ps1так ( -noexitсначала этот параметр хорош для отладки, но вы можете удалить его позже, в зависимости от того, хотите ли вы командное окно закрыть):

powershell -noexit -ExecutionPolicy Bypass & C:\[your-path]\Invoke-Set-ScreenResolution.ps1
Майкл Лукас
источник
1
Только то, что доктор подписался, большое спасибо!
Ларфойд
5

Я использовал комбинацию Qres.exe и Sleep.exe (поместите их в папку Windows) в пакетных файлах запуска, чтобы изменить разрешение для 2 пользователей. Фактический сценарий выглядит следующим образом:

@echo off
sleep 2
QRes.exe /x:1280 /y:960

(В то время как копия в низком разрешении есть Qres.exe /x:800 /y:600)

----------------------------------------- -------------------------------------------------- ------------------------------------
-------------- -------------------------------------------------- -------------------------------------------------- -------------

Если вы хотите, чтобы ваши значки оставались там, где вы хотите ... читайте дальше.
Вам потребуется еще две загрузки: -> Задержка



запуска:
http://www.snapfiles.com/php/download.php?id=103272&a=7130353&tag=7329208&loc=2

-> DesktopOK
http://www.softwareok.com /?Download=DesktopOK&goto=../Download/DesktopOK.zip

Установите Delayer для запуска и разместите DesktopOK, где хотите, я использовал мою папку «user». Организуйте свой рабочий стол,

В DesktopOK перейдите в «Параметры» и установите флажок «Восстановить при загрузке Windows», щелкните правой кнопкой мыши вновь созданную «Компоновку значков» и выберите «Использовать для: Восстановление при загрузке Windows».
На этом этапе вам также необходимо установить флажок «Запустить DesktopOK с окнами». Позднее две опции будут автоматически отключены при запуске Delayer.

Теперь найдите DesktopOK в Startup Delayer и щелкните правой кнопкой мыши «Delay».

Теперь осталось сделать только одну вещь - создать загрузочный пакетный файл.

@echo off
sleep 2
QRes.exe /x:1280 /y:960
sleep 1
"C:\Program Files\r2 Studios\Startup Delayer\Startup Launcher.exe" /LaunchApps=Common


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

Спасибо за такую ​​гибкость, Microsoft!

Tinytox
источник
4

Попробуйте Display Changer 2 , который может это сделать, а также запустите программу и измените разрешение обратно, когда он остановится (что вы МОЖЕТЕ работать с сеткой, но YMMV)

Phoshi
источник
2

Ни у одного из уже упомянутых инструментов не было всего, что мне было нужно, поэтому я нашел собственное решение: ChangeScreenResolution.exe

Примеры:

Изменить разрешение экрана всех мониторов на 800x600px

ChangeScreenResolution.exe /w=800 /h=600

Измените разрешение экрана всех мониторов на 800x600 пикселей с частотой обновления 60 Гц и глубиной цвета 32 бита.

ChangeScreenResolution.exe /w=800 /h=600 /f=60 /b=32

Установите глубину цвета дисплея с индексом от 1 до 16 бит

ChangeScreenResolution.exe /b=16 /d=1 

Краткий обзор опций:

Possible options (you can set OR query)
  Setting options
    /w=<width>      Width in pixel       eg 800
    /h=<height>     Height in pixel      eg 600
    /f=<frequency>  display refresh rate eg 60
    /b=<bpp>        bits per pixel       eg 32

  Querying options
    /l              list all connected display devices
    /m              list all available mode settings

  Filtering options
    /d=<device>     devices to modify/query, separated by comma, eg:
                      all (default)
                      0 (monitor with index 0, see option /l)
                      0,2 (monitors with index 0 and 2)
                      \\.\DISPLAY1 (name of display, see option /l)
Александр Таубенкорб
источник
Я не проверял ваше решение, но +1 за создание собственного :)
Thomas
Что ж, я закончил тестировать его и предпочел его выше других вариантов, описанных выше, с точки зрения простоты. Однако, это не сработало для меня (проблема с адаптером дисплея на моем конце). Тем не менее, отличная маленькая утилита!
Томас
@ Томас, в чем была проблема? Если вы используете все устройства, оно должно работать для всех них. Вы должны увидеть в выходных данных, если адаптер выходит из строя. В моих случаях это всегда было виртуальным или около того. Я могу видеть, могу ли я предоставить решение для этого.
Александр Таубенкорб
1
Какая лицензия на вашу утилиту?
Майкл Лукас
1
@MichaelLucas, нет фактической лицензии, но вы можете использовать ее как угодно ;-) Спасибо за вопрос!
Александр Таубенкорб
1

В то время как кто-то уже упоминал nircmd от Nirsoft, лучшим инструментом Nirsoft для этого является MultiMonitorTool .

Он поддерживает несколько мониторов, сохраненные конфигурации, 32 и 64 бит, изменения в разрешении, активации и ориентации и т. Д.

прецизионный самописец
источник
Другие упомянутые инструменты не работали для меня, но этот работал. Отличный инструмент для изменения разрешения экрана во флэш - спасибо за публикацию.
Моше Рубин
0

Достойно отметить решение через встроенные wmicкоманды W INDOWS M ПРАВЛЕНИЕ I nstrumentation

wmic desktopmonitor create screenheight=1024, screenwidth=768

Хотя может привести к:

ERROR:
Description = Provider is not capable of the attempted operation

в некоторых "провайдерах"


источник
2
Не работает. Пробовал с админом или без но тоже самое.
YumYumYum