Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Bat файл для включения/выключения мониторов. (Могу заплатить за помощь в решении)

Green Arrow Профи (779), на голосовании 9 месяцев назад
Необходимо сделать так, чтобы при запуске данного файла включались три монитора и отключался телевизор. И обратный этому файлик, который отключает три монитора и включает телевизор. Но при данном коде они просто выключаются все (и телевизор и мониторы секунд на 5-10), а затем снова все включаются. Много чего пробовал.
Сам файл:

@echo off

REM Путь к NirCmd
set NirCmdPath="D:\nircmd.exe"

REM Индексы мониторов и телевизора
set TVIndex=3
set Monitor1Index=1
set Monitor2Index=2
set Monitor3Index=4

REM Если телевизор подключен, отключить его и включить мониторы
%NirCmdPath% setprimarydisplay %Monitor2Index%
%NirCmdPath% wait 1000
%NirCmdPath% monitor off monitor:%TVIndex%
%NirCmdPath% monitor on monitor:%Monitor1Index%
%NirCmdPath% monitor on monitor:%Monitor2Index%
%NirCmdPath% monitor on monitor:%Monitor3Index%
Голосование за лучший ответ
Constantine Мыслитель (9723) 10 месяцев назад
По идее логично, если верить описанию этой программы на www.nirsoft.net/utils/nircmd2.html . Сначала команда "nircmd monitor off" отключает все мониторы, а потом команда "nircmd monitor on" трижды их включает. А параметры "monitor:3", "monitor:1", "monitor:2" и "monitor:4" она просто, по всей видимости, не распознаёт. По крайней мере, в описании этой команды ничего не говорится о возможности указания, какой монитор включать/выключать. Этот параметр можно использовать, судя по мануалу, вместе с командой "setdisplay", которая изменяет разрешение и частоту экрана, но не включает/отключает его.
Green ArrowПрофи (779) 10 месяцев назад
Вот мне точно так же показалось. Странно как-то. Альтернатив не нашёл.
Хотелось бы удобно пересаживаться с рабочего компьютера на телевизор для "общих" посиделок для игр. При этом выключать все свои мониторы по понятным причинам. Пробовал несколько программ по типу MultiMonitor и DisplayFusion. Либо не разобрался в них либо функционала такого в них нет.
Constantine Мыслитель (9723) Green Arrow, можно погуглить PowerShell. Но сходу там находится сразу на многих страничках одна и та же копипаста без объяснения, как она работает, и управляющая, похоже, тоже только 1 монитором. Но если разобраться в этой команде, то, может, удастся её изменить так, чтоб она управляла отдельными мониторами? Разумеется, я ничего гарантировать не могу, т. к. подобными вопросами не занимался. Вот сама команда:
 powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int PostMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::PostMessage(-1,0x0112,0xF170,2) 
a1987zzМудрец (13039) 10 месяцев назад
не ту утилиту смотрите, эта, наверное, надо: nirsoft.net/articles/turn_off_single_monitor_command_line.html
Constantine Мыслитель (9723) a1987zz, это не мне, а автору вопроса надо писать. Сейчас кастану его.
a1987zz Мудрец (13039) 10 месяцев назад
я так отключал на win7
 start C:\Program Files (x86)\ScreenBright\ScreenBright.exe -set screen 1 0xD6 4 
вместо screen 1 номер монитора.
Вообще для мониторов есть специальные VCP коды, т.е. самому можно программы писать.
Похожие вопросы