VESA Commander 1.5
Скриншот программы VESA Commander
VESA Commander - консольная программа для получения различной технической информации и тестирования мониторов с поддержкой стандарта VESA DDC/CI. Она позволяет получить текущее значение и описание любого из поддерживаемых монитором VCP кодов, а также изменить это значение, если это возможно. Таким образом, например, вы можете включить или выключить монитор, поменять язык экранных подсказок, изменить яркость или контрастность, выбрать цветовой профиль, а также сделать со своим монитором еще много чего интересного. Список VCP кодов стандартизирован и описан в документе VESA Monitor Control Command Set (MCCS), там же приводится формат и описание большинства значений передаваемых и получаемых параметров.
Команды:
list - получение списка установленных мониторов
set [monitor] [code] [value] - установить новое значение VCP кода для монитора
wset [monitor] [code] [value] - подождать, пока монитор не будет готов к приему команд и установить новое значение VCP кода для монитора
setw [monitor] [code] [value] - установить новое значение VCP кода для монитора и ожидать, пока он будет готов к приему следующих команд
fset [monitor] [code] [value] - принудительно установить новое значение VCP кода для монитора без каких-либо дополнительных проверок (крайне не рекомендуется к использованию!)
get [monitor] [code] - получить значение VCP кода для монитора
wget [monitor] [code] - подождать, пока монитор не будет готов к приему команд и получить значение VCP кода для монитора
all [monitor] - получить список поддерживаемых VCP кодов
cap [monitor] - получить строку параметров для монитора
Значения параметров [code] и [value] указываются в шестнадцатеричной системе счисления.
Примеры использования:
vesacom list
Получить список установленных мониторов. Число перед названием монитора используется в качестве параметра [monitor] для всех остальных команд. Также в качестве идентификатора монитора можно использовать любое из значений "Device Name", "Model", "Device Serial Number", "Manufacturer Product Code", "Manufacturer Serial Number".
vesacom cap 1
Получить строку поддерживаемых параметров монитора №1. Это техническая информация в кодированном формате, в большинстве случаев она нужна только специалистам.
vesacom all 1
Получить строку поддерживаемых параметров и список всех доступных VCP кодов для монитора №1. По возможности для некоторых кодов также выводятся их допустимые значения.
vesacom get 2 c8
Получить значение VCP кода C8h (Display Usage Time) для монитора №2.
vesacom set 1 d6 5
Выключить монитор №1.
vesacom set 1 cc 2
Установить английский язык экранных надписей для монитора №1.
vesacom set 2 4 1
Сбросить монитор №2 к заводским настройкам.
Для использования в пакетных файлах предусмотрены коды возврата в зависимости от выполняемой команды.
Команда list:
errorlevel = количество установленных мониторов
Команды set, wset и setw:
errorlevel = 65534 - код не поддерживается
errorlevel = 65533 - попытка изменить read-only код
errorlevel = 1 - команда успешно выполнена
errorlevel = 0 - команда выполнена с ошибкой
Команда get и wget:
errorlevel = 65534 - код не поддерживается
errorlevel = CurrentValue в случае успешного выполнения
Общее для команд set, setw, get, all, cap:
errorlevel = 65535 - монитор не поддерживает стандарт VESA DDC/CI
errorlevel = 65532 - монитор не найден
errorlevel = 65530 - аварийное завершение по Ctrl+C
Общее для команд wset, wget:
errorlevel = 65534 - код не поддерживается
errorlevel = 65532 - монитор не найден
errorlevel = 65530 - аварийное завершение по Ctrl+C
Если монитор действительно не поддерживает стандарт VESA DDC/CI или находится в таком состоянии, что не способен принимать команды, то на выполнение команд wset или wget дается 1 минута. По истечению таймаута команда завершается с errorlevel = 65534 (код не поддерживается).
Вся информация выводится на stdout, так что вы можете перенаправлять ее как угодно. Поддерживаются системы Windows Vista и выше.
Утилита VESA Commander работает напрямую с железом, поэтому будьте внимательны и осторожны при ее использовании. Со своей стороны я постарался предусмотреть потенциально опасные ситуации, но все равно вы должны четко понимать, что и зачем вы делаете, особенно при изменении значений различных VCP кодов. Я не несу никакой ответственности за результаты применения этой утилиты.
Просмотров: 6167 | Комментариев: 45
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
alex
(17.10.2023 в 03:13):
Понял что не так, ещё раз прочитал статью про выключение, у меня же самсунг там другой код.
set 1 e1h 0
set 1 e1h 1
Эти команды включают и выключают монитор.
set 1 e1h 0
set 1 e1h 1
Эти команды включают и выключают монитор.
alex
(17.10.2023 в 02:44):
Монитор самсунг при выполнении команды
vesacom set 1 d6 5
монитор не выключается, вот что пишет
Универсальный монитор PnP
VCP code: D6h (Power Mode, READ/WRITE)
Available values: 01h, 04h
Description: 05h = Power off
Sets value: 05h, result: OK
Программа monitoroffex.exe отключает монитор! Вот лог
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Я что-то не так делаю?
vesacom set 1 d6 5
монитор не выключается, вот что пишет
Универсальный монитор PnP
VCP code: D6h (Power Mode, READ/WRITE)
Available values: 01h, 04h
Description: 05h = Power off
Sets value: 05h, result: OK
Программа monitoroffex.exe отключает монитор! Вот лог
Универсальный монитор PnP - ID: 0005h - Cur: 1 - Max: 4 - ResS: 1 - CurS: 1 - MaxS: 1
Я что-то не так делаю?
ManHunter
(07.09.2023 в 23:50):
Версия 1.5. На выполнение команд wget и wset теперь дается 1 минута, после чего программа завершается с errorlevel = 65534 (код не поддерживается). Зависаний, даже теоретических, с этими командами больше не будет. Добавлены свежие Manufacturer ID.
ManHunter
(07.09.2022 в 08:15):
Это результаты вызова двух совершенно разных функций, и результаты совпадают. Я сделаю, конечно, какую-нибудь мелкую тестовую программу, которая сохранит в файл результаты в необработанном виде, чтобы я их потом спокойно поковырял. Но сомневаюсь, что это поможет. Тут или система, или монитор дают странный результат. Техника же, с ней любая невообразимая хрень становится возможной, даже та, которой в принципе быть не должно :)
User
(07.09.2022 в 00:05):
Не сработало. Инфа осталась прежняя (( Если интересно, могу предоставить монитор на удалённое растерзание )
ManHunter
(06.09.2022 в 11:45):
Сделал определение разрешения монитора другим способом, теперь должно быть более правильно. Архив обновлен.
User
(06.09.2022 в 02:50):
Неверно считалось разрешение экрана, в реальности 2560x1440. Windows 11
vesacom list
1 - Generic PnP Monitor
Resolution: 1707x960
Model: ASUS PB278
Manufacturer ID: ACI - Asus (ASUSTeK Computer Inc.)
Manufacturer Product Code: 27A3
vesacom list
1 - Generic PnP Monitor
Resolution: 1707x960
Model: ASUS PB278
Manufacturer ID: ACI - Asus (ASUSTeK Computer Inc.)
Manufacturer Product Code: 27A3
ManHunter
(09.06.2022 в 11:43):
К браузеру. На сайте уже много лет в этом плане ничего не менялось.
АндрейК
(09.06.2022 в 11:40):
Не совсем в тему, но нажал ссылку VESA.Commander.1.4-PCL.zip и вместо скачаивания "что-то там включите куки и т.п.". В браузере нажал "<-", f5 и снова нажал ссылку (zip) - в результате скачалось.
Это вопросы к браузеру или к сайту ?
Это вопросы к браузеру или к сайту ?
ManHunter
(01.12.2021 в 14:49):
Да это обычная реакция на Ассемблер и не только у дефендера. Надеюсь, про то, что это ложная тревога, напоминать не надо :) У меня тут и так часть софта в архивах под паролями, потому что пидорский гугл задолбал уже своими предъявами о якобы распространении злого зла.
Compiller
(01.12.2021 в 14:47):
не то чтобы я паникёр - но Windows Defender слегка матерится... ему наверное пакер не нравится?
ManHunter
(29.10.2021 в 11:50):
Спасибо за дельное предложение
АндрейК
(12.10.2021 в 01:58):
Отдельно спасибо за fset.
ManHunter
(24.09.2021 в 11:11):
Версия 1.4. Список вендоров дополнен новыми данными, еще раз отсортирован и приведен в порядок. Добавлена команда fset - установка параметра без каких-либо проверок его поддержки и обработки результата. Крайне НЕ рекомендуется к использованию, применяйте эту команду только если вы четко понимаете, что и зачем вы хотите сделать.
АндрейК
(16.09.2021 в 14:49):
Теперь красота:
Manufacturer ID: BNQ - BenQ Corporation
Спасибо, Дмитрий!
Manufacturer ID: BNQ - BenQ Corporation
Спасибо, Дмитрий!
ManHunter
(16.09.2021 в 14:29):
АндрейК, а тут главная печалька, что нет единой и актуальной базы по Manufacturer ID, а типа официальная база https://uefi.org/pnp_id_list давно не обновлялась. В разных источниках есть какие-то обрывки или свои идентификаторы, но иногда одинаковые ID по разным данным принадлежат вообще непохожим производителям. Насобирал еще немного, добавил, архив обновлен. Спасибо!
АндрейК
(16.09.2021 в 13:22):
Небольшое примечание (декоративная недоработка).
При запуске
>vesacom.exe list
Отвечает (в частности)
Manufacturer ID: BNQ - Unknown
Фактически - монитор BENQ
PS. Внутри программы есть буквы "BBL Brain Boxes Limited", а BENQ вниманием обделили.
При запуске
>vesacom.exe list
Отвечает (в частности)
Manufacturer ID: BNQ - Unknown
Фактически - монитор BENQ
PS. Внутри программы есть буквы "BBL Brain Boxes Limited", а BENQ вниманием обделили.
ManHunter
(16.09.2021 в 13:04):
Нет. В программе ничего искусственно не задерживается, вся реакция на стороне монитора.
АндрейК
(16.09.2021 в 13:02):
Можно ли как-то ускорить выполнение vesacom set 1 60 1 ?
ManHunter
(06.10.2020 в 21:46):
Версия 1.3. Добавлены команды wset и wget, в информацию о мониторах добавлены новые характеристики из блока EDID, некоторые из которых теперь можно использовать в качестве идентификатора монитора вместо его номера. Например, для монитора с параметрами
Philips 240B7QPT (24 inch Wide LCD MONITOR)
Device Name: \\.\DISPLAY1\Monitor0
Device ID: MONITOR\PHL0904\{4d36e96e-e325-11ce-bfc1-08002be10318}\0007
Model: PHL 240B7QPT
Device Serial Number: AU11801000050
Manufacturer ID: PHL - Philips Consumer Electronics Company
Manufacturer Product Code: 0904
Manufacturer Serial Number: 50
Year of manufacture: 2018
теперь абсолютно корректными и равнозначными будут записи типа
vesacom get 1 c0
vesacom get "\\.\DISPLAY1\Monitor0" c0
vesacom get "PHL 240B7QPT" c0
vesacom get "AU11801000050" c0
vesacom get "0904" c0
vesacom get "50" c0
Philips 240B7QPT (24 inch Wide LCD MONITOR)
Device Name: \\.\DISPLAY1\Monitor0
Device ID: MONITOR\PHL0904\{4d36e96e-e325-11ce-bfc1-08002be10318}\0007
Model: PHL 240B7QPT
Device Serial Number: AU11801000050
Manufacturer ID: PHL - Philips Consumer Electronics Company
Manufacturer Product Code: 0904
Manufacturer Serial Number: 50
Year of manufacture: 2018
теперь абсолютно корректными и равнозначными будут записи типа
vesacom get 1 c0
vesacom get "\\.\DISPLAY1\Monitor0" c0
vesacom get "PHL 240B7QPT" c0
vesacom get "AU11801000050" c0
vesacom get "0904" c0
vesacom get "50" c0
ManHunter
(16.09.2020 в 20:08):
Подумаю.
Rustamer
(16.09.2020 в 20:03):
Успешно переключаю между компьютером и ноутбуком пару мониторов, но возникла еще одна хотелка из практики: надо бы за мониторами закрепить какие-нибудь ID-шки. Номера 1, 2, 3 постоянно меняются местами (как мониторы в винде). Хотелось бы обращаться по чему-то менее переменчивому.
ManHunter
(14.05.2020 в 09:59):
Версия 1.2. Список доступных кодов сортируется по возрастанию. Добавлена команда setw - установить значение и ожидать, пока монитор будет готов к приему очередных команд. Теперь при выполнении подряд команд вроде
vesacom setw 2 d6 4
vesacom get 2 d6
вторая команда не будет вываливать ошибку, а отработает как задумано. Больше не надо городить в пакетных файлах искусственные задержки или типа того.
vesacom setw 2 d6 4
vesacom get 2 d6
вторая команда не будет вываливать ошибку, а отработает как задумано. Больше не надо городить в пакетных файлах искусственные задержки или типа того.
ControlMyMonitor
(25.03.2020 в 00:54):
Само собой :)
ManHunter
(23.03.2020 в 00:21):
Есть. Но она не дотягивает по некоторому функционалу.
ControlMyMonitor
(23.03.2020 в 00:19):
Есть ещё такая вот программулина:
https://www.nirsoft.net/utils/...monitor.html
https://www.nirsoft.net/utils/...monitor.html
user
(28.01.2020 в 05:08):
Поправка к предыдущему посту:
Опечатка в имени программы. Правильно:
"vesacom.exe 1 10 0"
Опечатка в имени программы. Правильно:
"vesacom.exe 1 10 0"
user
(28.01.2020 в 04:56):
Программа очень пригодилась.
На работе имеется человек, выкручивающий яркость монитора на 70%,
тогда как мне нужна яркость 0%.
Вот и был составлен и помещён в автозагрузку такой пакетный файл:
"vgacom.exe 1 10 0"
И теперь при запуске то, что надо. А он пускай выкручивает.
На работе имеется человек, выкручивающий яркость монитора на 70%,
тогда как мне нужна яркость 0%.
Вот и был составлен и помещён в автозагрузку такой пакетный файл:
"vgacom.exe 1 10 0"
И теперь при запуске то, что надо. А он пускай выкручивает.
ManHunter
(25.01.2020 в 17:57):
Это лишнее. На свете немыслимое количество готового софта, чья задача состоит именно в запуске процессов по горячим клавишам и/или из трея. Городить интерфейс для узкозаточенной консольной программы не считаю правильным.
Rustamer
(25.01.2020 в 17:54):
Использую постоянно для переключения между мониторами. Очень удобно быстро переключаться между ноутбуком и домашним компом. И вот сейчас возникла очевидная хотелка - переключение по горячим клавишам и через трей. В такой ситуации придется держать сабж в автозагрузке и делать интерфейс, но имхо оно того стоит. Можно конечно выкрутиться сторонними решениями или написать свое, но просто как идея для развития.
Guest
(23.01.2020 в 12:00):
Филип, спасибо за совет, у меня это работает, а вот из "полностью" выключенного состояния не выводится ни по set X d6 1 ни по set X d6 0, вероятно дежурное питание отключается правильно.
ManHunter
(17.01.2020 в 14:23):
Версия 1.1. Добавлены описания для известных значений параметров. Добавлена проверка версии Windows, т.к. все функции доступны только в Vista и выше, выполнена оптимизация и сделаны прочие мелкие изменения.
Филип
(16.01.2020 в 19:44):
По поводу коматозного состояния № 4 :)
Монитор из него выводится командой set X d6 1, где X - номер коматозного монитора :)
Что любопытно, из "полностью" выключенного состояния монитор выводится той же самой командой. Получается, он хоть и спит, но курей бачит :)
Монитор из него выводится командой set X d6 1, где X - номер коматозного монитора :)
Что любопытно, из "полностью" выключенного состояния монитор выводится той же самой командой. Получается, он хоть и спит, но курей бачит :)
ManHunter
(19.12.2019 в 23:30):
Sorry, but simultaneous control for different monitors is very ambiguous. Use .BAT-files, for example:
Result for my system:
1 - Philips 240B7QPT (24 inch Wide LCD MONITOR) - 1920x1200
2 - Универсальный монитор PnP - 1920x1080
Philips 240B7QPT (24 inch Wide LCD MONITOR)
VCP code: 10h (Luminance, READ/WRITE)
Sets value: 3Ch, result: OK
Универсальный монитор PnP
VCP code: 10h (Luminance, READ/WRITE)
Sets value: 3Ch, result: OK
Ejs
(19.12.2019 в 20:11):
Great program! Thanks much.
Would be possible to control more attached monitors at once?
for example:
vesacom.exe set * 10 3c
to control Luminance on both (or more) displays simultaneously?
Would be possible to control more attached monitors at once?
for example:
vesacom.exe set * 10 3c
to control Luminance on both (or more) displays simultaneously?
Compiller
(17.12.2019 в 00:23):
Ура!
Спасибо!
c:\TEMP\VESA>vesacom.exe set 2 60 01
LG L2000C(Digital)
VCP code: 60h (Input Source, READ/WRITE)
Available values: 01h, 03h
Sets value: 01h, result: OK
c:\TEMP\VESA>vesacom.exe set 1 60 03
LG L2000C(Analog)
VCP code: 60h (Input Source, READ/WRITE)
Available values: 01h, 03h
Sets value: 03h, result: OK
Входы переключаются.
Для дебага можно пивот от LG поковырять.
forteManager_v318
на сайте LG выгугливается - хотя оно и древнее, или EntechTaiwan MonitorInfoTool
Спасибо!
c:\TEMP\VESA>vesacom.exe set 2 60 01
LG L2000C(Digital)
VCP code: 60h (Input Source, READ/WRITE)
Available values: 01h, 03h
Sets value: 01h, result: OK
c:\TEMP\VESA>vesacom.exe set 1 60 03
LG L2000C(Analog)
VCP code: 60h (Input Source, READ/WRITE)
Available values: 01h, 03h
Sets value: 03h, result: OK
Входы переключаются.
Для дебага можно пивот от LG поковырять.
forteManager_v318
на сайте LG выгугливается - хотя оно и древнее, или EntechTaiwan MonitorInfoTool
АндрейК
(12.12.2019 в 15:36):
Я просто привёл цифры. Возможно они кому-то пригодятся, а кому-то бесполезны.
Выбирая комфорт для глаз ориентируюсь по ощущениям (ориентируюсь на удобство чтения мелких деталей в первую очередь). Видел как некоторые принципиально выкручивают "яркость" на максимум. Их глаза, их право, возможно им так удобнее.
Выбирая комфорт для глаз ориентируюсь по ощущениям (ориентируюсь на удобство чтения мелких деталей в первую очередь). Видел как некоторые принципиально выкручивают "яркость" на максимум. Их глаза, их право, возможно им так удобнее.
ManHunter
(11.12.2019 в 10:38):
Если выбирать между комфортом для глаз и копейками, то я выберу глаза.
АндрейК
(11.12.2019 в 10:08):
Извините что влезаю в софтовую тему, но
Возможно кому-то будет интересно узнать о энергопотреблении "обычного монитора" (на примере PHILIPS 23" с IPS матрицей. Цифры верны для конкретного монитора, но весьма схожи с аналогичными)
Практически только "Яркость" влияет на энергопотребление и влияет так:
0% - 8,0 Вт
50% - 14,9 Вт
100% - 21,6 Вт
зависимость линейная, потому только три значении.
Изменение значения "контраст" практически не влияет на энергопотребление либо разница не превышает +/- 0,1 Вт.
В режим "ожидания" ~ 0,3 Вт.
Немного бухгалтерии. За год "нагорит", при цене 1 кВт/час в 5 рублей
В режим "ожидания" - 0,50 руб.
При яркости 0% - 8*365*24/1000*5 = 350,4 руб.
При яркости 100% - 21,6*365*24/1000*5 = 946,08 руб.
Возможно кому-то будет интересно узнать о энергопотреблении "обычного монитора" (на примере PHILIPS 23" с IPS матрицей. Цифры верны для конкретного монитора, но весьма схожи с аналогичными)
Практически только "Яркость" влияет на энергопотребление и влияет так:
0% - 8,0 Вт
50% - 14,9 Вт
100% - 21,6 Вт
зависимость линейная, потому только три значении.
Изменение значения "контраст" практически не влияет на энергопотребление либо разница не превышает +/- 0,1 Вт.
В режим "ожидания" ~ 0,3 Вт.
Немного бухгалтерии. За год "нагорит", при цене 1 кВт/час в 5 рублей
В режим "ожидания" - 0,50 руб.
При яркости 0% - 8*365*24/1000*5 = 350,4 руб.
При яркости 100% - 21,6*365*24/1000*5 = 946,08 руб.
АндрейК
(11.12.2019 в 09:18):
Весьма полезная утилита. Спасибо.
ManHunter
(09.12.2019 в 21:32):
На работе сервера крутятся под CentOS, так что волей-неволей приходится понемногу разбираться. Каждому свое, мне привычнее винда, Linux на десктопе не практикую.
u-b0at
(09.12.2019 в 20:53):
О! Спасибо за линк)
Кстати, а как лично Вы оцениваете "ось" Linux? Работали с ней? Ваше мнение?
Кстати, а как лично Вы оцениваете "ось" Linux? Работали с ней? Ваше мнение?
ManHunter
(09.12.2019 в 14:23):
Я не пишу под Linux. Тем более под него уже все написано: https://habr.com/ru/post/94990/
u-b0at
(09.12.2019 в 14:23):
Версии для Linux будут?
Добавить комментарий
Заполните форму для добавления комментария
Я, кажется, нашёл условия возникновения. Куки быстро протухают - если открыть страницу и уйти пить чай, а по возвращении ткнуть на файл, будет такой эффект.