Вопрос или проблема
Я хочу изменить порядок отображения на своем компьютере через командную строку. У меня настроены 2 монитора в режиме расширенного рабочего стола, и я хочу переключать настройку мониторов с двойного отображения на одно и обратно через командную строку.
Я посмотрел QRes и nircmd. Хотя у QRes полностью отсутствует поддержка нескольких мониторов, nircmd не может отключить монитор, только изменить основное состояние и разрешение отдельных экранов.
Буду признателен, если вы знаете способ сделать это.
Правка: Я размещу здесь свое решение, используя смену дисплея из ответа climenoles:
@echo off
REM установка на один экран
echo *** Отключение экрана 2 ***
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -detach
echo Запуск TF2 -fullscreen -novid -console -w 1920 -h 1200
REM Запуск Team Fortress 2 в полноэкранном режиме
cd C:\Program Files (x86)\Steam
Steam.exe -applaunch 440 -fullscreen -novid -console -w 1920 -h 1200
REM пауза, потому что steam.exe возвращается до выхода TF2
echo Нажмите клавишу, чтобы снова включить экран 2
pause
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary
Этот инструмент может вам помочь: Сменщик дисплея :
«Сменщик дисплея изменяет разрешение дисплея, запускает программу, а затем восстанавливает оригинальные настройки. Он также может изменить разрешение
навсегда и переставить мониторы в многомониторной настройке»
Работает в графическом интерфейсе или командной строке, и это бесплатно для личного использования…
Надеюсь, это поможет. Дайте нам знать.
Большое спасибо за комментарий Билла Родмана в этой теме.
Я комбинирую этот инструмент с командой Windows7 DisplaySwitch.exe: “C:\Windows\System32\DisplaySwitch.exe /internal”, чтобы переключиться исключительно на основной монитор. – Билл Родман 29 янв ’10 в 12:17
Тестируя это, это вызывает и немедленно выбирает экран.
- /internal вызывает внутренний экран (ваш основной дисплей)
- /external переключается на внешний экран (я не уверен, как хорошо это работает, когда есть более одного экрана)
- /clone дублирует дисплеи.
- /extend переключается на расширенные настройки.
Поскольку это вызывает путь к файлу, просто добавьте это в свой пакетный скрипт, и бам, мгновенная и эффективная смена дисплея. Хорошая идея заключается в том, чтобы объединить это в интерфейсе планировщика задач Windows, так как вы можете вызвать путь к файлу и передать ему аргументы, и тогда всякий раз, когда происходит событие TF2, дисплей всегда будет переключаться.
Вы были близки с NirCmd, но то, что вы ищете, это Nir’s MultiMonitorTool:
MultiMonitorTool – это маленький инструмент, который позволяет выполнять некоторые действия, связанные с работой с несколькими мониторами. С помощью MultiMonitorTool вы можете отключать/включать мониторы, устанавливать основной монитор, сохранять и загружать конфигурацию всех мониторов, а также перемещать окна с одного монитора на другой. Вы можете выполнять эти действия через пользовательский интерфейс или из командной строки, не отображая интерфейс пользователя. MultiMonitorTool также предоставляет окно предпросмотра, которое позволяет вам видеть предпросмотр каждого монитора в вашей системе.
Инструмент 12noon выглядит неплохо, но без официального инструмента MS я выберу NirSoft вместо любого другого инструмента в любое время.
Без стеснения рекламирую: Вам может быть интересен TvGameLauncher, который я написал именно для этой цели (переключение основных дисплеев для игр). Он также может переключаться на HDMI audio и предотвращать появление заставки во время игры (без отключения ее). Он даже поддерживает протокол Steam (Steam://
), так что вам не нужно использовать трюк с pause
. Однако он не поддерживает отключение ваших других мониторов, но я добавлю это в свой список задач (у меня есть несколько других интересных функций, таких как автоматическая генерация ярлыков для ТВ).
Правка – все функции добавлены. Проверьте!
Хотя я понимаю, что это старая тема, переключение между режимами отображения в Windows 10 с использованием доступных по умолчанию инструментов возможно. Проблема, с которой я столкнулся, заключалась в том, что не было “четкого” механизма, чтобы определить, был ли дисплей расширен или клонирован.
Вот мой рабочий прототип на PowerShell:
#ext_or_clone.ps1
#Переключение между режимами расширенного и клонированного дисплеев
#требуется PowerShell 3
#Загрузка класса Windows Forms .Net
#if PowerShell < 3 используйте вместо этого: [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
Add-Type -AssemblyName System.Windows.Forms
#проверить ширину виртуального дисплея, ширина "режима"
$currDispMode = [System.Windows.Forms.SystemInformation]::VirtualScreen.Width
#проверить ширину основного дисплея
$oneScrWidth = [System.Windows.Forms.SystemInformation]::WorkingArea.width
#сравнить две ширины
switch ($currDispMode)
{
#если ширины одинаковые,
# это означает, что дисплеи в режиме клонирования, поэтому режим должен быть расширен
$oneScrWidth{displayswitch.exe /extend}
#если ширина виртуального экрана больше ширины основного экрана
# это означает, что дисплеи в режиме расширения, поэтому режим должен быть клонирован
{$_ -gt $oneScrWidth}{displayswitch.exe /clone}
}
WS Display Settings от WizardSoft — это удобный маленький инструмент и довольно простой в использовании для новичков командной строки:
Инструмент командной строки для сохранения и восстановления настроек отображения Windows из и в файл. Легкая настройка для нескольких мониторов. Создавайте пресеты для ноутбука, телевизора, монитора и проекторов. Он может сохранить и восстановить точное двоичное представление текущих настроек отображения Windows.
Что я хотел, так это ярлык для переключения на расширенный режим и другой, чтобы вернуться к одноэкранному отображению. После 30 минут возни — успех!
Я использовал Windows 7, и после прочтения readme.txt
вы также можете легко это настроить.
Простейший способ использовать инструмент — сохранить текущие настройки дисплея в файл с помощью
WsDisplaySettings.exe -save filename.dis
и загрузить и применить настройки с помощью
WsDisplaySettings.exe filename.dis
Также есть более продвинутые функции, как объясняется в файле readme.
Если бы я вел бизнес, я бы заплатил за эту программу! (Она бесплатна для личного использования.)
Вы можете использовать DisplaySwitch.exe /internal
, чтобы изменить настройки дисплея на использование только вашего основного монитора, и DisplaySwitch.exe /extend
, чтобы переключиться обратно на многомониторную настройку. Более подробная информация здесь. Работает и в Windows 10.
Еще один хороший инструмент — это wsdisplaysettings
. Инструмент командной строки для настройки дисплеев по вашему усмотрению. Также может создавать файлы настроек для удобства.
У меня есть ноутбук и внешний монитор, поэтому я вызываю displayswitch.exe /external
, чтобы использовать только расширенный монитор, и displayswitch.exe /extend
, чтобы использовать оба.
Кроме того, чтобы использовать оба монитора для одного пользователя и отключать внутренний монитор, когда экран блокируется, я добавил задания Windows, которые запускаются при блокировке и разблокировке рабочего места:
Задание на блокировку имеет флаг “Запуск с наивысшими полномочиями”.
Я только что нашел самый простой способ переключения с двух мониторов на один и обратно — это **DisplayConfig ** в PowerShell. Вот шаги, чтобы получить его:
- Установите DisplayConfig:
выполните в PS “Install-Module -Name DisplayConfig” - Чтобы увидеть все доступные мониторы, выполните в PS “Get-DisplayInfo”
PS C:\Users\michaelc> Get-DisplayInfo
DisplayId DisplayName Active Primary Position Mode ConnectionType
1 DELL P2419H True True 0 0 1920x1080@60Hz DisplayPort
2 DELL P2419H True False -1920 0 1920x1080@60Hz DisplayPort
3 DELL P2317H False False 0 0 DisplayPort
- Чтобы включить монитор N3, выполните в PS “Enable-Display 3”
- Чтобы отключить монитор N3, выполните в PS “Disable-Display 3”
Вау, именно то, что я искал для своей настройки 3×1 на Win10. Простой значок в трее с 3 действиями:
- все мониторы ВКЛ для полного диапазона отображения
- только мой средний монитор ВКЛ (левый и правый ВЫКЛ)
- только мой правый монитор ВКЛ (левый и средний ВЫКЛ)
Похвала, Андрей 🙂
Ответ или решение
Изменение настроек отображения через командную строку в Windows 7 может показаться сложной задачей, однако, используя специальные утилиты, вы сможете легко переключаться между режимами одного и двух мониторов. Рассмотрим несколько эффективных методов, которые помогут вам быстро настроить дисплей в зависимости от ваших потребностей.
1. Исполнение команд с использованием DisplaySwitch.exe
Windows 7 поставляется с утилитой DisplaySwitch.exe
, которая позволяет управлять состоянием экранов через командную строку. Вот несколько полезных команд:
-
Для переключения на основной монитор:
C:\Windows\System32\DisplaySwitch.exe /internal
-
Для переключения на внешний монитор:
C:\Windows\System32\DisplaySwitch.exe /external
-
Для дублирования отображения:
C:\Windows\System32\DisplaySwitch.exe /clone
-
Для расширения отображения:
C:\Windows\System32\DisplaySwitch.exe /extend
Эти команды можно вставить в пакетный файл (.bat), чтобы автоматизировать процесс переключения между мониторами.
2. Использование MultiMonitorTool от NirSoft
Если вам нужно больше контроля, чем позволяет DisplaySwitch.exe
, вы можете использовать утилиту MultiMonitorTool от NirSoft. Она позволяет отключать и включать мониторы, настраивать основной монитор и сохранять конфигурации дисплея. Вот как вы можете это сделать:
- Скачайте MultiMonitorTool.
- После установки используйте команду для отключения второго монитора:
MultiMonitorTool.exe /disable 2
- Для включения:
MultiMonitorTool.exe /enable 2
3. Использование Display Changer от 12noon
Еще один мощный инструмент – Display Changer от 12noon. Вы можете создавать пакетные файлы, чтобы сначала отключить один монитор, запустить нужное приложение и потом восстановить настройки. Примерный код будет выглядеть так:
@echo off
REM Отключаем второй экран
cd "C:\Program Files (x86)\12noon Display Changer\"
dc64cmd.exe -monitor="\\.\DISPLAY2" -detach
echo Запуск приложения...
cd "C:\Program Files (x86)\Steam"
Steam.exe -applaunch 440 -fullscreen
REM Ждем завершения работы
pause
REM Включаем второй экран
cd "C:\Program Files (x86)\12noon Display Changer\"
dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary
Заключение
Разные утилиты предоставляют различные уровни контроля над вашими дисплеями в Windows 7. Все эти методы позволяют эффективно переключаться между режимами на нескольких мониторах, что делает вашу работу более гибкой. Убедитесь, что выбранный вами способ соответствует вашим требованиям − это может значительно повысить вашу производительность и удобство работы с несколькими дисплеями.
Если вам нужна дополнительная помощь с настройками или скриптами, обязательно дайте знать!