Будь-який спосіб зміни роздільної здатності екрана Windows за допомогою командного рядка?


28

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

Я отримую доступ до них за допомогою старого ноутбука з роздільною здатністю 1024x1078. Результатом є такі крихітні піктограми / команди, що важко спробувати змінити роздільну здатність екрана з 2 дисплеїв з високою роздільною здатністю на один дисплей з низькою роздільною здатністю.

Було б чудово, якби це було в командному рядку. Або, можливо, є спосіб через живу сітку це зробити. Будь-які ідеї?

Відповіді:


30

Використовуйте QR-код, тоді скажіть:

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-бітної версії. - Це, мабуть, не є способом звернутися до окремих моніторів. Він завжди просто працює проти основного екрану. - Злом, який опублікували інші (використовуйте DisplaySwitch), здається, може спрацювати, доки у вас є лише два монітори ...
BrainSlugs83

17

NirCmd безкоштовний інструмент може зробити це.
Щоб змінити дисплей на 1024 x 768 з 24-бітовою глибиною кольору:

nircmd.exe setdisplay 1024 768 24

nircmd також має інші дуже численні функції.


1
якщо ви використовуєте ноутбук, як мій, який не підтримує 24-бітний колір. Можливо, вам доведеться змінити 24 на 32 - nircmd.exe setdisplay 1024 768 32
Julian

Чому її не змінили назавжди? Але тимчасове застосування?
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)

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

Якщо ви хочете, щоб ваші іконки залишалися там, де ви їх хочете ... читайте далі.
Вам знадобиться ще два завантаження:



-> Запуск Delayer:
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 з windows". Пізніші два варіанти буде автоматично відмінено програмою Startup Delayer пізніше.

Тепер знайдіть DesktopOK у програмі запуску і клацніть правою кнопкою миші «Затримка».

Тепер залишилося лише одне, зробити ваш файл запуску.

@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!


4

Спробуйте Display Changer 2 , який може це зробити, а також запустити програму та змінити роздільну здатність назад, коли вона перестане працювати (що ви МОЖЕТЕ мати можливість працювати з сіткою, але YMMV)


2

Жоден із згаданих інструментів не мав всього, що мені потрібно, тому я придумав власне рішення: ChangeScreenResolution.exe

Приклади:

Змініть роздільну здатність екрана всіх моніторів на 800x600px

ChangeScreenResolution.exe /w=800 /h=600

Змініть роздільну здатність екрана всіх моніторів на 800x600px зі швидкістю оновлення 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

Ну, я закінчив тестувати його і віддаю перевагу вище інших варіантів з точки зору простоти. Однак для мене це не спрацювало (проблема з адаптером дисплея на моєму кінці). Все-таки чудова маленька корисність!
Томаса

@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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.