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

248433
Bill Rodman

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

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

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

26

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

30
AshirusNW

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

QRes.exe /x:800 /y:600 
Крошечная утилита, которая делает именно то, что мне нужно. Bill Rodman 14 лет назад 0
Я комбинирую эту утилиту с командой Windows7 DisplaySwitch.exe: «C: \ Windows \ System32 \ DisplaySwitch.exe / internal», чтобы исключительно переключиться на основной монитор. Bill Rodman 14 лет назад 5
Displayswitch.exe также имеет параметры командной строки, которые позволяют создавать ярлыки, которые будут устанавливать определенный режим отображения. / внутренний / клон / расширить / внешний JJS 12 лет назад 0
Не работает с Windows x64. Fantius 9 лет назад 5
Последняя версия отлично работает на 64-битной Windows 10. - Не похоже на способ адресации и индивидуальный мониторинг. Он всегда работает только с основным экраном. - Взлом, который выложили другие (используйте DisplaySwitch), кажется, может сработать, если у вас только два монитора ... BrainSlugs83 8 лет назад 0
DisplaySwitch.exe / internal не работал для меня, но когда я запускал DisplaySwitch.exe 2-й раз без аргументов, всплыло диалоговое окно, и я смог переключиться в режим одного монитора. Это избавило меня от необходимости ездить в офис, спасибо @BillRodman wytten 7 лет назад 0
17
harrymc

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

nircmd.exe setdisplay 1024 768 24

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

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

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

4
Tinytox

Я использовал комбинацию 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

Установите запуска и разместите 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!

3
Michael Lucas

Я нашел образец сценария 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 
Только то, что доктор подписался, большое спасибо! Larphoid 6 лет назад 1
2
Alexander Taubenkorb

None of the already mentioned tools had all that I needed, so I came up with my own solution: ChangeScreenResolution.exe

Examples:

Change screen resolution of all monitors to 800x600px

ChangeScreenResolution.exe /w=800 /h=600 

Change screen resolution of all monitors to 800x600px with refresh rate of 60Hz and 32bit color depth

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

Set color depth of display with index 1 to 16bit

ChangeScreenResolution.exe /b=16 /d=1 

Quick overview of the options:

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 8 лет назад 0
Что ж, я закончил тестировать его и предпочел его выше других вариантов, описанных выше, с точки зрения простоты. Однако, это не сработало для меня (проблема с адаптером дисплея на моем конце). Тем не менее, отличная маленькая утилита! Thomas 8 лет назад 0
@ Томас, в чем была проблема? Если вы используете все устройства, оно должно работать для всех них. Вы должны увидеть в выходных данных, если адаптер выходит из строя. В моих случаях это всегда было виртуальным или около того. Я могу видеть, могу ли я предоставить решение для этого. Alexander Taubenkorb 8 лет назад 0
Я не хочу использовать эти комментарии в качестве форума для устранения неполадок. Но это определенно ошибка с нашей стороны. У компьютера черный экран при загрузке Windows, но я могу получить удаленный доступ к командной строке через нашего агента RMM, и я надеялся перевести его в режим VGA, чтобы экран снова появился. Нет кости. Не проблема с вашим приложением, просто компьютер, на котором я его запускал. Thomas 8 лет назад 0
Какая лицензия на вашу утилиту? Michael Lucas 6 лет назад 0
@MichaelLucas, нет фактической лицензии, но вы можете использовать ее как угодно ;-) Спасибо за вопрос! Alexander Taubenkorb 6 лет назад 0
1
pgr

While somebody already mentioned Nirsoft's nircmd, the best tool from Nirsoft for this purpose is MultiMonitorTool.

It supports multi-monitor, saved configurations, 32 and 64 bit, changes in resolution, activation and orientation, etc.

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

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

wmic desktopmonitor create screenheight=1024, screenwidth=768 

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

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

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

Не работает. Пробовал с админом или без но тоже самое. YumYumYum 7 лет назад 1