Программное выключение нескольких мониторов
Программное выключение нескольких мониторов
На технических форумах в этих ваших интернетах периодически поднимается тема о программном выключении мониторов. Предлагаются разные решения, чаще всего просто бездумно скопированные с других сайтов или более-менее адаптированные под требуемый язык программирования. В свое время я тоже делал что-то подобное. Сегодня хотелось бы провести глобальную работу над ошибками и выдать "на гора" действительно правильное и рабочее решение этой задачи. Заодно я постараюсь подробно рассказать, что не так с другими предлагаемыми решениями.
Начнем с теории. В Windows Vista появились целая группа функций, позволяющих управлять основными настройками монитора на высоком уровне, а также несколько низкоуровневых функций. Вот они-то нам и нужны. С помощью функции GetVCPFeatureAndVCPFeatureReply мы получаем значения нужных нам параметров Virtual Control Panel (VCP), а при помощи функции SetVCPFeature меняем эти значения. Таким образом мы можем, например, определить производителя монитора, узнать текущее состояние электропитания физического монитора, и выполнить то, ради чего эта статья и затевалась, а именно выключить монитор. Наиболее полный и актуальный список всех кодов VCP можно найти в мануале VESA Monitor Control Command Set (MCCS). Этот документ предназначен для использования только внутри компании VESA, но мир не без добрых людей, подтянули, поделились.
Важное замечание. Управление при помощи кодов VCP возможно только для мониторов, которые поддерживают стандарт VESA DDC/CI. Это относится практически ко всем современным мониторам, даже мой безымянный китайский монитор соблюдает этот стандарт. Вместе с тем, некоторые производители поддерживают свой набор кодов. Мониторы Samsung, например, можно перевести в спящий режим стандартными кодами, а вот выключить питание только своими собственными.
FASM из коробки не знает многие константы и структуры, это касается и нашего случая. Не проблема, определим их самостоятельно.
Code (Assembler) : Убрать нумерацию
- ; Стандартные значения параметра Power Mode
- POWER_ON = 0x01
- POWER_STANDBY = 0x02
- POWER_SUSPEND = 0x03
- POWER_OFF = 0x04
- ; Нестандартное значение параметра Power Mode
- FORCE_POWER_OFF = 0x05
- ; Структура для получения физического монитора
- struct PHYSICAL_MONITOR
- hPhysicalMonitor dd ?
- szPhysicalMonitorDescription rw 128
- ends
Code (Assembler) : Убрать нумерацию
- ; Перебрать все мониторы, установленные в системе
- invoke EnumDisplayMonitors,NULL,NULL,MonitorEnumProc,NULL
Code (Assembler) : Убрать нумерацию
- ;--------------------------------------------------------
- ; Callback-функция перебора мониторов
- ;--------------------------------------------------------
- proc MonitorEnumProc hMonitor:DWORD,hdc:DWORD,lpRect:DWORD,lParam:DWORD
- locals
- ; Количество мониторов
- num dd ?
- ; Массив PHYSICAL_MONITOR
- hMonArray dd ?
- MonArray dd ?
- CurrentValue dd ?
- MaximumValue dd ?
- CurrentS dd ?
- MaximumS dd ?
- endl
- ; Получить количество физических мониторов
- lea eax,[num]
- invoke GetNumberOfPhysicalMonitorsFromHMONITOR,[hMonitor],eax
- ; Физических мониторов нет
- cmp [num],0
- je .loc_ret
- ; Зарезервировать память под массив PHYSICAL_MONITOR
- mov eax,[num]
- imul eax,sizeof.PHYSICAL_MONITOR
- invoke GlobalAlloc,GMEM_MOVEABLE+GMEM_DDESHARE,eax
- mov [hMonArray],eax
- invoke GlobalLock,[hMonArray]
- mov [MonArray],eax
- ; Получить информацию о всех физических мониторах
- invoke GetPhysicalMonitorsFromHMONITOR,[hMonitor],[num],[MonArray]
- ; Выключить все мониторы поочередно
- mov ecx,[num]
- mov esi,[MonArray]
- .loc_monitors_loop:
- push ecx
- ; Получить текущее состояние монитора
- lea eax,[MaximumValue]
- push eax
- lea eax,[CurrentValue]
- push eax
- invoke GetVCPFeatureAndVCPFeatureReply,\
- [esi+PHYSICAL_MONITOR.hPhysicalMonitor],0D6h,NULL
- ; Монитор вообще поддерживает код 0D6h?
- cmp eax,1
- jne .loc_next_monitor
- ; Монитор включен?
- cmp [CurrentValue],POWER_ON
- jne .loc_next_monitor
- ; Значения выходят за допустимые границы
- cmp [MaximumValue],5
- ja .loc_next_monitor
- cmp [MaximumValue],0
- je .loc_next_monitor
- ; Это монитор Samsung?
- lea eax,[MaximumS]
- push eax
- lea eax,[CurrentS]
- push eax
- invoke GetVCPFeatureAndVCPFeatureReply,\
- [esi+PHYSICAL_MONITOR.hPhysicalMonitor],0E1h,NULL
- ; Код 0E1h не поддерживается, это точно не Samsung
- cmp eax,1
- jne @f
- ; Максимальное значение не 1, это точно не Samsung
- cmp [MaximumS],1
- jne @f
- ; Максимальное значение не 4, это точно не Samsung
- cmp [MaximumValue],4
- jne @f
- ; Передать команду выключения монитора Samsung
- invoke SetVCPFeature,[esi+PHYSICAL_MONITOR.hPhysicalMonitor],0E1h,0
- jmp .loc_next_monitor
- @@:
- ; Передать общую команду выключения монитора
- invoke SetVCPFeature,[esi+PHYSICAL_MONITOR.hPhysicalMonitor],\
- 0D6h,[MaximumValue]
- .loc_next_monitor:
- ; Следующая запись из массива PHYSICAL_MONITOR
- add esi,sizeof.PHYSICAL_MONITOR
- pop ecx
- sub ecx,1
- jnz .loc_monitors_loop
- ; Прибраться за собой
- invoke DestroyPhysicalMonitors,[num],[MonArray]
- ; Освободить память
- invoke GlobalUnlock,[hMonArray]
- invoke GlobalFree,[hMonArray]
- .loc_ret:
- ; Продолжаем обработку
- mov eax,TRUE
- ret
- endp
Вернемся к работе над ошибками. Везде, в каждом виденном мной примере для выключения монитора используется VCP-код D6h (Power Mode) со значением 4. Но если открыть мануал на 70-й странице, то там обнаружится интересное дополнение.
05h - Power off the display - functionally equivalent to turning off power using the "power button"
То есть значение 5 выключает монитор аналогично нажатию физической кнопки питания. Если монитор поддерживает такое "холодное" выключение, то надо использовать именно его. При попытке применить на таких мониторах значение 4 кода Power Mode, монитор фактически не выключится, а перейдет в режим какого-то глубокого коматоза. Вывести монитор из этого состояния можно только окончательно выключив его кнопкой питания и включив заново. Поскольку значение 5 обозначено как нестандартное, перед его использованием требуется проверить, поддерживает ли монитор такое "холодное" выключение или нет. Делается это при помощи функции GetVCPFeatureAndVCPFeatureReply с кодом D6h. Функция вернет текущее состояние питания монитора и максимальное значение параметра Power Mode, поддерживаемое монитором. Если максимальное значение получилось 5, то можно смело выключать монитор "холодным" способом, иначе придется довольствоваться четвертым режимом. Дополнительно надо проверять текущее состояние питания, если оно не равно POWER_ON, то монитор уже находится не во включенном состоянии, а значит ничего с ним делать не надо. Как показали эксперименты, обязательно надо проверять, успешно или нет отработала функция GetVCPFeatureAndVCPFeatureReply. Например, на ноутбуках код D6h вообще не поддерживается, как и на мониторах старых моделей. В таких случаях найденный физический монитор надо пропускать.
Теперь что касается мониторов Samsung. Как показали мои эксперименты, эти мониторы поддерживают максимальное значение параметра Power Mode равное 4, а для "холодного" выключения используют собственный VCP-код E1h со значением параметра 0. Использование кода Power Mode с параметром 4 могут отправить некоторые модели мониторов в описанное выше коматозное состояние. Каким образом определить, что это монитор Samsung? Для этого надо запросить результат функции GetVCPFeatureAndVCPFeatureReply по VCP-коду E1h. Если код не поддерживается, значит монитор точно не Samsung. Максимальное значение при этом должно быть не больше 1. Но одной этой проверки мало, к примеру, мой рабочий монитор Dell тоже технически поддерживает этот код, но никак на него не реагирует. Поэтому, чтобы с большой уверенностью считать, что перед нами монитор Samsung, должны быть выполнены все три условия, а именно: максимальное значение Power Mode равно 4, результат запроса функции по коду E1h вернул TRUE и максимальное значение по этому коду равно 1. К сожалению, у меня не так много подопытных, поэтому я не могу с гарантией утверждать, что это справедливо для всех мониторов Samsung.
В приложении пример программы с исходным текстом, которая пытается выключить все найденные физические мониторы. Если что-то будет работать не так, то там же в архиве есть программа info.exe, которая записывает в файл диагностическую информацию о мониторах. Присылайте мне ее результаты, буду разбираться.
Просмотров: 3772 | Комментариев: 49
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(11.10.2020 в 19:16):
Petya, спасибо, но ведь уже есть полноценный VESA Commander, там это все делается гораздо правильнее и удобнее.
Petya
(11.10.2020 в 19:14):
Дополняю - на код E1 вообще не реагирует, модель SyncMaster 920NW
Petya
(11.10.2020 в 19:00):
Самсунговский монитор, info такое:
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 5 - ResS: 1 - CurS: 1 - MaxS: 255
Уходит в описанный "коматоз". Под отладчиком видно, что идёт отключение кодом D6 после этого сравнения:
cmp [MaximumS],1
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 5 - ResS: 1 - CurS: 1 - MaxS: 255
Уходит в описанный "коматоз". Под отладчиком видно, что идёт отключение кодом D6 после этого сравнения:
cmp [MaximumS],1
ManHunter
(16.01.2020 в 21:17):
Большое человеческое Спасибо за эти мануалы. Реально фиг где найдешь.
Филип
(16.01.2020 в 20:25):
К слову, это я туда ссылки на стандарты (pdf-файлы) добавил :)
Приятно видеть, что они пригодились :) Я эти стандарты когда-то по всему инету искал, еле нашёл :) И решил вставить их в Вику, дабы они плодились и размножались и овладевали бы массами :)
С уважением, твой тёзка, который любит немного подшифроваться)
Филип
(16.01.2020 в 19:17):
Philips 196VL - ID: 0012h - Cur: 1 - Max: 5 - ResS: 0 - CurS: 0 - MaxS: 0
ManHunter
(09.12.2019 в 14:06):
VESA Commander отправлен в релиз: http://www.manhunter.ru/releas...der_1_0.html
Огромная благодарность всем, кто принял участие в тестировании.
Огромная благодарность всем, кто принял участие в тестировании.
ManHunter
(27.11.2019 в 16:46):
Судя по info, стандарт DDC/CI в этом мониторе все-таки поддерживается, иначе там было бы по нулям. Другой вопрос, в каком объеме этот стандарт поддерживается.
Естественно. Вот хайлевел для рулежки монитором:
https://docs.microsoft.com/ru-...on-functions
Естественно. Вот хайлевел для рулежки монитором:
https://docs.microsoft.com/ru-...on-functions
Андрей
(27.11.2019 в 16:43):
BenQ GW2255 - ID: 8109h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 4
никакой видимой реакции
Через Free Monitor Manager яркость и прочее регулируется.
hdmi1-dp1.exe - без видимой реакции.
Насколько помню, существует несколько механизмов управления монитором (или вроде того).
FMM 3.1
* DDC/CI support is no longer required.
никакой видимой реакции
Через Free Monitor Manager яркость и прочее регулируется.
hdmi1-dp1.exe - без видимой реакции.
Насколько помню, существует несколько механизмов управления монитором (или вроде того).
FMM 3.1
* DDC/CI support is no longer required.
ManHunter
(15.11.2019 в 22:41):
Ну вот, VESA Commander в первом приближении готов, теперь можно творить со своими мониторами любые непотребства. До официального релиза выкладывать не буду, кому реально надо - пишите на обратную связь, пришлю файл поиграться и инструкции чо как.
Rustamer, Павел, жду первых бета-тестеров
Rustamer, Павел, жду первых бета-тестеров
ManHunter
(14.11.2019 в 22:21):
Мне проще написать какой-нибудь "VESA Commander", чтобы вы передавали ему на каком мониторе, какие коды и в какое значение ставить, сами проводили эксперименты, вешали запуск на хоткеи и т.п. Один только код 0C0h чего стоит :)) А то выполнить все пожелания просто нереально.
Павел
(14.11.2019 в 20:50):
Интересная тема, вот что думаете по такой штуке - подключено к компу скажем так два монитора (один из них телек по hdmi в моем случае, но наверно это не очень принципиально) Можно ли выключить или даже лучше отправить все же в спячку один из них, по хоткею? ну и потом обратно. а другой пусть работает. Это как идея для будущего программного релиза - такая штука будет востребована точно
p.s. говорю как юзер Ваших полезных программулин :) teamview tamper у меня на всех компах в автозагрузке:)
p.s. говорю как юзер Ваших полезных программулин :) teamview tamper у меня на всех компах в автозагрузке:)
Rustamer
(14.11.2019 в 19:41):
ManHunter, про сову и глобус не соглашусь. Какой смысл в покупать переключатель, да еще и с DisplayPort-ом, когда можно все щелчком мыши переключить или по хоткею? Не так уж давно открыл для себя программные свитчи (Input Director и иже с ними) - они работают по сети прозрачно. В результате дома можно обходиться одной мышью и клавиатурой, а к ноутбуку ничего не подключать (кроме HDMI и зарядки). Точно также и на работе применяю с ноутбуком и десктопом. Раздражает только необходимость переключения монитора дома. Хотел накатать утиль для этого.
Но кажется, что меня кое-кто опередил :) Спасибо!
Работает хорошо, но только в одну сторону - с HDMI на DisplayPort (==запускаю на ноуте). А вот напрямую не желает - никакой реакции.
SE370_S27E370D (DisplayPort) - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Но кажется, что меня кое-кто опередил :) Спасибо!
Работает хорошо, но только в одну сторону - с HDMI на DisplayPort (==запускаю на ноуте). А вот напрямую не желает - никакой реакции.
SE370_S27E370D (DisplayPort) - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
ManHunter
(14.11.2019 в 10:53):
Rustamer, зачем натягивать сову на глобус? КВМ-свичи на том же алиэкспрессе от 500 рублей. https://www.aliexpress.com/ite...6027418.html
А по сути вопроса VCP-код 60h - Input Select. Страница 81 в мурзилке. Проверил, на моем мониторе Dell программное переключение работает.
А по сути вопроса VCP-код 60h - Input Select. Страница 81 в мурзилке. Проверил, на моем мониторе Dell программное переключение работает.
Rustamer
(14.11.2019 в 10:22):
Не по теме выключения, но тоже в контексте DDC/CI ищу возможность переключать текущий вход через DDC/CI из консоли/кода. Нередко приходится переключать монитор с десктопа на ноутбук и наоборот. К первому монитор подключен через DisplayPort, а ко второму через HDMI. Или такое переключение нереально через DDC/CI?
ManHunter
(13.11.2019 в 21:41):
monitoroff.exe не выключает, а переводит в спящий режим. Монитор просыпается от движения мышки или от кнопки клавиатуры. Но это единственное решение для старых мониторов.
coldun
(13.11.2019 в 02:03):
Hisense LEDN24K15P - монитор никак не реагирует, info.exe- создаётся ПУСТОЙ info.txt.
В свое время я тоже делал что-то подобное - по этой ссылке в начале статьи программка monitoroff.exe- монитор отключает.
В свое время я тоже делал что-то подобное - по этой ссылке в начале статьи программка monitoroff.exe- монитор отключает.
TestLog
(11.11.2019 в 08:28):
ViewSonic VA2213
Универсальный монитор PnP - ID: 0012h - Cur: 1 - Max: 4 - ResS: 0 - CurS: 0 - MaxS: 0
выключился, кнопка погасла, включился с кнопки
Попозже музейный relisys проверю, пока времени нет.
Универсальный монитор PnP - ID: 0012h - Cur: 1 - Max: 4 - ResS: 0 - CurS: 0 - MaxS: 0
выключился, кнопка погасла, включился с кнопки
Попозже музейный relisys проверю, пока времени нет.
Евгений
(11.11.2019 в 04:43):
Монитор Acer
Generic PnP Monitor - ID: 0009h - Cur: 1 - Max: 4 - ResS: 0 - CurS: 0 - MaxS: 0
Выключается, светодиод горит, включается кнопкой
Generic PnP Monitor - ID: 0009h - Cur: 1 - Max: 4 - ResS: 0 - CurS: 0 - MaxS: 0
Выключается, светодиод горит, включается кнопкой
TestLog
(09.11.2019 в 13:06):
LG Flatron W2343S
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 0 - MaxS: 0
выключился, кнопка погасла, включился с кнопки
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 0 - MaxS: 0
выключился, кнопка погасла, включился с кнопки
ManHunter
(09.11.2019 в 00:14):
Ну вот, теоретические выкладки из статьи подтверждаются с каждым новым тестом. ОГРОМНОЕ СПАСИБО всем! Но если не сложно, то с радостью приму любые другие результаты тестов, т.к. мой служебный зоопарк техники довольно ограничен в плане уникальности моделей, закупали сразу много и одинаковых.
Владимир_5HDD
(09.11.2019 в 00:08):
Samsung SyncMaster 971p
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Выключился полностью - светодиод не мигал, включил по кнопке.
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Выключился полностью - светодиод не мигал, включил по кнопке.
ManHunter
(09.11.2019 в 00:07):
Такая же хрень - старый монитор. Не поддерживает стандарт DDC/CI. Протестировал еще на своем старом ViewSonic, программное выключение не поддерживает. Максимум, что можно из него выжать - это спячка через отправку SC_MONITORPOWER.
wet
(08.11.2019 в 23:04):
С монитором Acer программа не работает.
Создается файл info.txt размером в 0 байт.
Создается файл info.txt размером в 0 байт.
Николай
(08.11.2019 в 15:23):
Монитор BENQ, 19", 5:4
Generic PnP Monitor - ID: 0000h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 100 - MaxS: 100
Выключается, светодиод не горит. Включается кнопкой на мониторе.
Generic PnP Monitor - ID: 0000h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 100 - MaxS: 100
Выключается, светодиод не горит. Включается кнопкой на мониторе.
ManHunter
(07.11.2019 в 15:49):
Exit, специально для аськи и локалки: https://www.upload.ee/files/10...off.zip.html
Exit
(07.11.2019 в 15:46):
ManHunter,
Просто вспомнилось, что по локалке и в аське бродила "шутка" - прикол.vbs
Запустив этот "прикол", начинал выезжать и заезжать лоток CD Rom"а
с выводом MsgBox"а - "ХА-ХА-ХА на ближайшие 10 мин. ты будешь злится на меня-100% зацени сейчас свой дисковод"
Ну или комп в ребут пускали.
P.S. пунктуация и стилистика афтара, сохранена ))
Просто вспомнилось, что по локалке и в аське бродила "шутка" - прикол.vbs
Запустив этот "прикол", начинал выезжать и заезжать лоток CD Rom"а
с выводом MsgBox"а - "ХА-ХА-ХА на ближайшие 10 мин. ты будешь злится на меня-100% зацени сейчас свой дисковод"
Ну или комп в ребут пускали.
P.S. пунктуация и стилистика афтара, сохранена ))
Василий
(07.11.2019 в 15:41):
LG 24MK430H
Универсальный монитор PnP - ID: 0012h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 0 - MaxS: 65535
Выключается, лампочка не мигает, обратно включается с кнопки)))
Универсальный монитор PnP - ID: 0012h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 0 - MaxS: 65535
Выключается, лампочка не мигает, обратно включается с кнопки)))
ManHunter
(07.11.2019 в 14:38):
Переименовывать не надо, у меня параллельно делается нормальный релиз программного включения-выключения мониторов, с иконками, манифестами, все дела. Но сперва надо тут довести все до ума.
Exit
(07.11.2019 в 14:32):
Самсунг S24B300BL
Generic PnP Monitor - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Выключается, лампочка не мигает, обратно включается с кнопки.
P.S. ну все, осталось переименовать monitoroffex.exe в "котики.jpg.exe" и пустить в массы )))))))
Generic PnP Monitor - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Выключается, лампочка не мигает, обратно включается с кнопки.
P.S. ну все, осталось переименовать monitoroffex.exe в "котики.jpg.exe" и пустить в массы )))))))
ManHunter
(07.11.2019 в 13:53):
ч.т.д.
Never
(07.11.2019 в 13:53):
Да, он древний, еще 4:3.
ManHunter
(07.11.2019 в 13:52):
Значит монитор не поддерживает стандарт DDC/CI и программно его не выключить. У меня на старом BenQ такая же фигня, все по нулям.
Never
(07.11.2019 в 13:50):
Монитор, ты же предупредил, что на ноутах не работает
Владимир
(07.11.2019 в 13:41):
Samsung SyncMaster 943n
Generic PnP Monitor - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Выключается, лампочка не мигает, обратно включается с кнопки.
Generic PnP Monitor - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Выключается, лампочка не мигает, обратно включается с кнопки.
Андрей
(07.11.2019 в 13:34):
SE360_S24E391HL (Analog) - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Теперь отключается полностью (лампочка не мигает)
Теперь отключается полностью (лампочка не мигает)
ManHunter
(07.11.2019 в 13:20):
Это монитор или ноут? Если ноут, то для них тут ничего не светит.
Never
(07.11.2019 в 13:15):
Sony не пошло
Универсальный монитор PnP - ID: 0000h - Cur: 0 - Max: 0 - ResS: 1 - CurS: 0 - MaxS: 0
Универсальный монитор PnP - ID: 0000h - Cur: 0 - Max: 0 - ResS: 1 - CurS: 0 - MaxS: 0
ManHunter
(07.11.2019 в 11:17):
Убрал определение самсунгов по ID производителя, добавил проверку по коду E1h. Статью и примеры обновил.
Рабочий монитор:
Dell U2415(HDMI1) - ID: 1109h - Cur: 1 - Max: 5 - ResS: 1 - CurS: 0 - MaxS: 1
Рабочий монитор:
Dell U2415(HDMI1) - ID: 1109h - Cur: 1 - Max: 5 - ResS: 1 - CurS: 0 - MaxS: 1
ManHunter
(06.11.2019 в 22:38):
Пока все как я и предполагал при тестировании. Выключение идет по максимальному значению. А если отправить 4 при поддерживаемом 5, то монитор уходит в коматоз.
Очень интересно посмотреть на значения ResS, CurS и MaxS на самсунговских мониторах.
Очень интересно посмотреть на значения ResS, CurS и MaxS на самсунговских мониторах.
zdm
(06.11.2019 в 22:21):
2 шт. LG 24MP88HV
Погасли оба, не стенбай а полное отключение.
LG IPSFULLHD(HDMI) - ID: 0012h - Cur: 1 - Max: 4 - CurS: 0 - MaxS: 65535
LG IPSFULLHD(HDMI) - ID: 0012h - Cur: 1 - Max: 4 - CurS: 0 - MaxS: 65535
Погасли оба, не стенбай а полное отключение.
LG IPSFULLHD(HDMI) - ID: 0012h - Cur: 1 - Max: 4 - CurS: 0 - MaxS: 65535
LG IPSFULLHD(HDMI) - ID: 0012h - Cur: 1 - Max: 4 - CurS: 0 - MaxS: 65535
ManHunter
(06.11.2019 в 21:52):
Александр, спасибо! Добавил проверку на выход MaximumValue за допустимые границы, благодарности proba. Обновил info.exe с прицелом на самсунговские VCP-коды.
На моем домашнем компе с дополнительным китайским монитором:
Philips 240B7QPT (24 inch Wide LCD MONITOR) - ID: 0009h - Cur: 1 - Max: 5 - ResS: 0 - CurS: 0 - MaxS: 0
Универсальный монитор PnP - ID: 0012h - Cur: 4 - Max: 4 - ResS: 0 - CurS: 0 - MaxS: 0
На ASUSовском ноуте после добавления проверки на предмет поддержки кода 0D6h - пустой файл, так и должно быть.
На моем домашнем компе с дополнительным китайским монитором:
Philips 240B7QPT (24 inch Wide LCD MONITOR) - ID: 0009h - Cur: 1 - Max: 5 - ResS: 0 - CurS: 0 - MaxS: 0
Универсальный монитор PnP - ID: 0012h - Cur: 4 - Max: 4 - ResS: 0 - CurS: 0 - MaxS: 0
На ASUSовском ноуте после добавления проверки на предмет поддержки кода 0D6h - пустой файл, так и должно быть.
Александр
(06.11.2019 в 21:22):
Выключается, лампочка не мигает, обратно включается с кнопки.
ManHunter
(06.11.2019 в 20:44):
В коматоз с морганием лампочки или реально выключает так, что лампочка гаснет?
Александр
(06.11.2019 в 20:42):
Работает
ManHunter
(06.11.2019 в 19:51):
proba, это только для мониторов, которые именно мониторы. Для ноутов не катит.
Александр, это работает или не работает? Самсунг, как я понял из маркировки.
Александр, это работает или не работает? Самсунг, как я понял из маркировки.
Александр
(06.11.2019 в 19:50):
Info:SF350_S24F350FH / S24F352FH / S24F354FH (HDMI) - ID: 0012h - Cur: 1 - Max: 4
proba
(06.11.2019 в 19:35):
>Если что-то будет работать не так, то...
Звучит как-то обнадёживающе. :-) Раз только было упомянуто, что поможет принудительное выключение питания, а на буке как?!
Info записал:
Универсальный монитор PnP - ID: 77a8387ah - Cur: 2007512178 - Max: 0
Звучит как-то обнадёживающе. :-) Раз только было упомянуто, что поможет принудительное выключение питания, а на буке как?!
Info записал:
Универсальный монитор PnP - ID: 77a8387ah - Cur: 2007512178 - Max: 0
Добавить комментарий
Заполните форму для добавления комментария
а) он в 15 раз больше (пред. версия "всего-то" в 7)
б) он работает с одним монитором единомоментно, задача перебора остаётся за к-л. другим (идея - ввести номер монитора */0 и/или опцию /all (или как-то так), который(ая) заставил бы VC применить действие ко всем мониторам)
в) выбор кода для отключения остаётся тоже не пойми за кем, сам VC команды "выключить" не имеет.
г) это отдельная закрытая программа, в то время как тут, по сути, представлена функция для использования у себя