Как стать автором
Обновить

Комментарии 17

Это будет работать на старых ОС? Например Win7, WinXP?

Я когда-то давно писал и пользовался довольно долго скриптом для сбора данных об оборудовании компов в корп сети, данные получались по WMI, и для получения данных о подключенных мониторах я откопал хитрую функцию, которая из реестра (по EDID) получала название и серийник монитора (конечно там много всего ещё, но мне не надо было остальное). Так вот, это всё работало, пока я не наткнулся, что в Win10 (возможно не сразу, а в каком-то обновлении) изменили пути и немного логику, и работа скрипта поломалась, я это отловил и как-то иначе выкрутился (что-то вроде get-wmiobject WmiMonitorID -Namespace root\wmi). Поискал у себя - я смотрел в System\CurrentCOntrolSet\Enum\Display и далее в модели монитора выбирал ветку Control (это означало, что этот монитор активен), а вот в win10 этой ветки уже не стало. Когда монитор один и проблемы нет - берём то, что нашли и норм. Однако, в реестре сохраняются данные о всех ранее подключенных мониторах - на ряде компов это были 10 и более штук.

P.S. странно что у вас в коде есть только case "ACR" и BNQ, хотя таких сокращений около 60-70шт (сейчас наверняка больше). Или тут какие-то особенности есть для этих производителей?

Не проверял, но на Win7 должно работать.

странно что у вас в коде есть только case "ACR" и BNQ, хотя таких сокращений около 60-70шт (сейчас наверняка больше). Или тут какие-то особенности есть для этих производителей?

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

Не знаю, насколько это было бы "спортивно", но для EDID есть разные утилиты, например Custom Resolution Utility (CRU), позволяющая считывать и подменять информацию из EDID. Так же есть варианты по настройке максимальных разрешений в утилитах производителей видеокарт.

Странный какой-то дефект.

Не иначе кто-то сжёг плату скалера на мониторе и в мастерской в монитор поставили "универсальный", а перепрошивкой его не заморочились.

А параметры монитора разве нельзя в его свойствах поменять? Оно на EDID плюет обычно, если разрешение и частоту синхронизации вручную задать. У Вас - не так?

Зачем эти пляски с бубном вокруг реестра?

А в настройках монитора что стоит?

"Auto" небось какое-нибудь?

Странный какой-то дефект.

У меня подобное было когда отгорела подтяжка на DDC шине видеокарты. Хотя разрешение при этом не так жостко ограничивалось. Но там монитор вообще плохо детектился.

Мы с Вами обсуждаем, что там может быть, а дело возможно просто в отсутствии драйвера монитора в венде. М. б. EDID работает. ID монитора компьютеру - передает, но драйвер венда к этому ID не находит и подставляет умолчательный. А автор статьи забыл показать, что же показывает венда в диспетчере устройств вместо его монитора.

Умолчательный тоже можно сменить:

"Чтобы изменить разрешение монитора по умолчанию в Windows 10, можно воспользоваться «Параметрами системы»:

  1. Нажмите на клавиатуре одновременно кнопки Win и I

  2. Перейдите в раздел «Система»

  3. Нажмите на «Дисплей» и выберете раздел «Разрешение дисплея»

  4. Определитесь с разрешением и выставьте его. 

  5. Нажмите «ОК», подтвердите выбор. "

И не надо с бубном плясать и заклинания бормотать....

Всё не совсем так. В EDID далеко не только  ID монитора. Там ещё зашиты как раз поддерживаемые разрешения и частоты. Поэтому если он(EDID) корректный то стандартный драйвер(если это можно считать драйвером) всё отлично детектит и прекрасно работает. А вот если его нет или он некорректный, то просто так в панели уже ничего не поменяешь.

А Вы прочли фразу "Чтобы изменить разрешение монитора по умолчанию в Windows 10," прежде чем писать:

А вот если его нет или он некорректный, то просто так в панели уже ничего не поменяешь.

Наверное "если его нет или он некорректный", то венда применяет настройки по-умолчанию? Правда же?

Кроме того, из статьи непонятно нет обмена с монитором вообще и он помечен в "Устройствах" как "неизвестный монитор" или же его ID всё-таки виден.

Если ID - есть, то Ваша фраза

просто так в панели уже ничего не поменяешь.

неверна в корне.

В свойствах монитора можно выставить частоту и разрешение и эта частота и разрешение будут применяться к этому монитору и дальше.

Наверное "если его нет или он некорректный", то венда применяет настройки по-умолчанию? Правда же?

А тут пробовать надо. В моём случае это выливалось в то что система 2-3 минуты тупо стояла с черным монитором, а потом давала выбрать всё что угодно. Это было при невозможности прочитать EDID и под XP. А что выберет система при неисправном EDID надо тестировать, потому что там ещё может и видеодрайвер поработать. И поручатся что она выберет, что то там выставлено по умолчанию я не возьмусь, потому как это по умолчанию там для исправного монитора.

 И поручатся что она выберет, что то там выставлено по умолчанию я не возьмусь, потому как это по умолчанию там для исправного монитора.

Выбор у венды небольшой.

Либо параметры по-умолчанию для "Неизвестного монитора", либо данные из описания модели, если заголовок EDID прочитался.

Поручаться не надо☺️

А разобраться - не помешает.

"Настройки по умолчанию" для монитора в венде, это стандартные VESA-режимы и максимально доступным будет 1024x768@60.

Не странный дефект. Попадается такое. У самого есть монитор, в котором вход DVI не отдаëт EDID совсем, а другой вход ОК. Если принудительно выставить параметры - вполне работает и по DVI. Скорее всего портится содержимое EEPROM, или сама микросхема дохнет (я для своего варианта не смог найти прошивку, а вручную корректировать очень лень было, и не стал чинить, поставил монитор на комп где только vga выход). И это не софтварный глюк, я тестил на разных ОС и разных компах.

Не странный дефект. Попадается такое. У самого есть монитор, в котором вход DVI не отдаëт EDID совсем, а другой вход ОК

У EDID в протоколе есть заголовок, который почти всегда читается. Те самые "VendorID" и далее. А есть данные в XML с данными, которые выставлены в мониторе: частота развертки, данные цветового профиля, разрешение.

Может такое быть, что заголовок прочитался, а данные - нет

Автору не мешало бы показать, что там в свойствах монитора в "Диспетчере устройств"Есть ли там "BenQ" и модель?

Может диагноз и не тот, который он дал.

А DVI - да, - "дохлый" интерфейс. Нельзя его "на горячую" перетыкать.

В разъеме DVI для передачи EDID - два отдельных контакта "DDC".

Подгорели выходы видимо.

Такое часто бывает, например когда телевизор и компьютер в разные розетки включены.

Нужно шасси телевизора и корпус компьютера отдельным проводом соединять, чтобы такого не было.

Да это понятно, что надо в один удлинитель с нулем и кабели питания исправные. Я в таком состоянии купил (б/у), а обнаружил только через пару месяцев (до того пользовался по vga). Там на плате в общем-то есть диоды защитные по этим выводам, скорее всего пробит один или несколько. Моник старый, и как раз когда (если) комп сдохнет, то там уже надо будет нормальный комплект брать, и не мучать старую технику)

А параметры монитора разве нельзя в его свойствах поменять? Оно на EDID плюет обычно, если разрешение и частоту синхронизации вручную задать. У Вас - не так?

Все мониторы, определяющиеся в системе, как plug-n-play, передают системе свой E-EDID, чтобы система имела полный набор параметров подключённого монитора и могла использовать субпиксельный рендеринг шрифтов, а также правильно отображать элементы, размеры которых заданы в типографских пунктах, но если у вас каким-то образом эта информация в EEPROM монитора повредилась и/или система не может установить корректность переданного ей блока по контрольному байту, система ничего не будет знать о параметрах монитора — о доступных разрешениях и размерах видимого поля.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации