26

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

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

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

8 ответов8

30

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

QRes.exe /x:800 /y:600
17

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

nircmd.exe setdisplay 1024 768 24

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

4

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

Установите Startup 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!

4

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

3

Я нашел образец сценария 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
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

В то время как кто-то уже упоминал 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .