Изменить расположение дисплея через пакетную / командную строку в Windows 7

12

Я хочу изменить расположение дисплея моего компьютера через командную строку. У меня есть 2 монитора, которые расширяются, и я хочу изменить настройку мониторов с Dual Display на Single Display и обратно через командную строку.

Я просмотрел QRes и nircmd. Хотя в QRes полностью отсутствует поддержка нескольких мониторов, nircmd не может отключить монитор, а только меняет основное состояние и разрешение отдельных экранов.

Буду признателен, если вы знаете способ сделать это.

Редактировать: я опубликую свое решение здесь с помощью переключателя дисплея в ответе:

@echo off
REM setting to single screen
echo *** Disabling Screen 2 *** 
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -detach

echo Starting TF2 -fullscreen -novid -console -w 1920 -h 1200
REM Starting Team Fortress 2 fullscreen
cd C:\Program Files (x86)\Steam
Steam.exe -applaunch 440 -fullscreen -novid -console -w 1920 -h 1200

REM pausing because steam.exe returns before TF2 quits
echo Press a key to reenable Screen 2
pause
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary
private_meta
источник
Ваше сообщение фактически дало мне идею для этой функции, которую я добавил в TvGameLauncher. Проверьте это, если все еще актуально (см. Мой ответ ниже).
Охад Шнайдер
Эй, я знаю, что этот вопрос старый, но я хочу знать, есть ли способ обнаружить присутствие другого монитора в Windows из командной строки?
Дурга Сваруп

Ответы:

8

Эта утилита может помочь вам: Display Changer :

«Display Changer изменяет разрешение экрана, запускает программу, затем восстанавливает исходные настройки. Он также может навсегда изменить разрешение и переставить мониторы в настройке с несколькими мониторами »

Работает в графическом интерфейсе или командной строке, и это бесплатно для личного использования ...

http://12noon.com/?page_id=80

Надеюсь, это поможет. Дайте нам знать.

climenole
источник
Upvote за хороший ответ, но так не получится. Я пытаюсь запустить игру Steam таким образом. Запуск через «steam: // rungameid / #» не работает, так как не дает вам исполняемого файла. запуск steam.exe с параметром -applaunch # меняет разрешение, не запускает игру и сразу же возвращается обратно (так быстро, что вы ее почти не видите). запуск исполняемого файла игры напрямую приводит к ошибке загрузки. Хорошая идея, но она не сработала.
private_meta
Но я только что понял, что могу создать командный файл с начальной командой, чтобы перейти на один экран, запустить игру в отдельной командной строке и затем вернуться обратно после завершения программы, все в пределах пакета, что теоретически должно работать. Я должен попробовать это.
private_meta
Ладно. Скажите нам, если это работает для вас. Если пакет работает хорошо, вы можете скомпилировать его для получения файла .exe. Например: batchcompiler.sourceforge.net :)
climenole
Спасибо. Это прекрасно работает, за исключением того, что steam.exe возвращается немедленно, поэтому я должен использовать «паузу», иначе пакет не будет работать.
private_meta
8

Большое спасибо комментарию Билла Родмана в этой теме.

Я объединяю эту утилиту с командой Windows7 DisplaySwitch.exe: «C: \ Windows \ System32 \ DisplaySwitch.exe / internal», чтобы исключительно переключаться на основной монитор. - Билл Родман 29 января 2010 года в 12:17

Проверяя это, он вызывает и сразу же выбирает экран для выбора через.

  • / Внутренние вызовы внутреннего экрана (ваш основной дисплей)
  • / external изменения внешнего экрана (я не уверен, насколько хорошо он справляется, когда экран более 1)
  • / клонирует дубликаты дисплеев.
  • / Расширить переключатели на расширенные настройки.

Так как это вызывает путь к файлу, просто присоедините его к пакетному сценарию и baboom, мгновенное и эффективное изменение отображения. Хорошей идеей было бы вставить этот тогетор в пользовательский интерфейс планировщика задач Windows, так как вы можете вызвать путь к файлу и дать ему аргументы, тогда всякий раз, когда происходит ваше событие TF2, дисплей всегда переключается.

Jouster500
источник
Работает без прав администратора, работает на расстоянии 1 клика.
m3nda
Вызов его без аргументов показывает боковую панель с четырьмя параметрами.
Хосе Томас Тосино
6

Вы были близки с NirCmd, но вы ищете Nir's MultiMonitorTool :

MultiMonitorTool - это небольшой инструмент, который позволяет выполнять некоторые действия, связанные с работой с несколькими мониторами. С помощью MultiMonitorTool вы можете отключить / включить мониторы, установить основной монитор, сохранить и загрузить конфигурацию всех мониторов и переместить окна с одного монитора на другой. Вы можете выполнять эти действия из пользовательского интерфейса или из командной строки, не отображая пользовательский интерфейс. MultiMonitorTool также предоставляет окно предварительного просмотра, которое позволяет вам просматривать предварительный просмотр каждого монитора в вашей системе.

Инструмент 12noon выглядит неплохо, но, за исключением официального инструмента MS, я возьму NirSoft поверх любого другого инструмента в любой день.

Бесстыдный плагин: вас может заинтересовать инструмент TvGameLauncher, который я написал именно для этой цели (переключение основных дисплеев для игр). Он также может переключаться на звук HDMI и предотвращать появление заставки во время воспроизведения (без ее отключения). Он даже поддерживает протокол Steam ( Steam://), поэтому вам не нужно использовать pauseхитрость. Хотя он не поддерживает отключение других ваших мониторов, но я добавлю это в свой список задач (у меня есть несколько других интересных функций, таких как автоматическое создание ярлыков для ТВ).

Редактировать - все функции добавлены. Проверьте это!

Охад Шнайдер
источник
1
NirSoft качается. Мне просто нужно было найти решение для переключения моих мониторов. У меня есть установка с двумя мониторами, когда один из них включен, а другой выключен. Так что никаких модных расширенных режимов рабочего стола и т. Д. С MultiMonitorTool теперь у меня есть только одна однострочная строка: она отключает текущий MultiMonitorTool.exe /switch 1 /switch 2запущенный монитор и одновременно отключает другие. Я добавил эту команду к клавише макросов на моей клавиатуре, и теперь мониторы переключаются одним нажатием клавиши!
Нейротрансмиттер
MultiMonitorTool плохо работал для меня с различными конфигурациями 3 мониторов: некоторые отключены, клонированы и т. Д. Он применил некоторые конфигурации с разрешением 0x0, что привело к невозможности открытия панели управления Nvidia.
NateS
3

Хотя я понимаю, что это старая тема, переключение между режимами отображения в Windows 10 с помощью инструментов, доступных по умолчанию, возможно. Проблема, с которой я столкнулся, заключалась в том, что не было «четкого» механизма, который мог бы сказать, что дисплей был расширен, а не клонирован. Вот мой рабочий прототип в PowerShell:

#ext_or_clone.ps1
#Toggle between Extend and Clone displays
#requires PowerShell 3

#Load Windows Forms .Net class
#if PowerShell < 3 use this instead: [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
Add-Type -AssemblyName System.Windows.Forms

#check the width of the virtual display, the "mode" width 
$currDispMode = [System.Windows.Forms.SystemInformation]::VirtualScreen.Width

#check the width of the primary display
$oneScrWidth = [System.Windows.Forms.SystemInformation]::WorkingArea.width


#compare the two widths
switch ($currDispMode)
{
    #if the widths are the same,
    # it means the displays are in clone mode, so the mode should be extend
    $oneScrWidth{displayswitch.exe /extend}

    #if the VirtualScreen width is greater than the primary screen width
    # it means displays are in extend mode, so the mode should be clone
    {$_ -gt $oneScrWidth}{displayswitch.exe /clone}
}
DTE-IT
источник
1

Еще один хороший wsdisplaysettings. Инструмент командной строки для настройки дисплеев по вашему вкусу. Также можно создавать файлы настроек для удобства.

Джон
источник
Сбои около 80% времени в Windows 10. Это работает другие 20%.
NateS
1

WizardSoft WS Display Settings - это аккуратный маленький инструмент, довольно простой в использовании для новичков в командной строке:

Инструмент командной строки для сохранения и восстановления настроек отображения Windows в файл и из файла. Простая настройка нескольких мониторов. Создавайте пресеты для ноутбука, телевизора, монитора и проектора. Он может сохранять и восстанавливать точное двоичное представление текущих настроек дисплея Windows.

То, что я хотел, было ярлыком, чтобы переключиться на расширенный и другой, чтобы вернуться к одному показу. После 30 минут игры с ним - успех!

Я использовал Windows 7, и после прочтения readme.txtвы можете легко это настроить.

Самый простой способ использовать инструмент - сохранить текущие настройки отображения в файл с

WsDisplaySettings.exe -save filename.dis

и загрузить и применить настройки с

WsDisplaySettings.exe filename.dis

Есть также более продвинутые функции, как описано в файле readme.

Если бы я вел бизнес, я бы заплатил за программу! (Это бесплатно для личного использования.)

Андрей
источник
2
Добро пожаловать в Супер пользователя! Пожалуйста, прочитайте, как рекомендовать программное обеспечение в ответах , особенно биты, выделенные жирным шрифтом ; затем отредактируйте свой ответ, чтобы следовать указаниям там. Благодаря!
бертиб
1

Вы можете DisplaySwitch.exe /internalизменить настройки дисплея, чтобы использовать только основной монитор, и DisplaySwitch.exe /extendвернуться к настройке нескольких мониторов. Больше информации здесь . Работает и на Windows 10.

Джейк Рис
источник