# Старый монитор, который перестаёт ловить сигнал

Опубликовано 2026-10-10 · монитор, DDC/CI, Windows, железо · https://home.tigran.manukyan.dev/ru/notes/monitor-that-forgets-to-listen.html

**TL;DR:** Старый DVI-монитор, который остаётся чёрным после загрузки или долгого пропадания сигнала, можно разбудить, переключив вход по DDC/CI (VCP 0x60) на VGA и обратно на DVI утилитой NirSoft ControlMyMonitor из задачи планировщика при входе в систему.

Мой второй экран — 22-дюймовая панель с наработкой около 35 000 часов, подключённая по DVI. После каждой загрузки он оставался чёрным с включённой подсветкой. Windows его видела, кабель был в порядке, переподключение помогало. Надоело это очень быстро.

## Сужаем круг

Монитор отвечает по DDC/CI, так что можно спросить у него самого, что происходит. В зависшем состоянии он сообщал правильный вход (DVI) и частоту вертикальной развёртки 0 (VCP `AE`), то есть просто не слушал сигнал.

- Воспроизводится так: Win+P → «PC screen only» на 40 секунд, потом «Extend». Разрыв в секунду (Win+Ctrl+Shift+B) проблему не вызывает.
- Повторный выбор DVI ничего не даёт. Перезапуск сигнала со стороны Windows — тоже.
- Переключение входа на VGA и обратно на DVI будит его каждый раз.

## Обходное решение

ControlMyMonitor от NirSoft умеет писать VCP-коды из командной строки. VCP `60` — источник сигнала; у этого монитора 1 — VGA, 3 — DVI.

```
ControlMyMonitor.exe /SetValue "\\.\DISPLAY2\Monitor0" 60 1
timeout /t 2
ControlMyMonitor.exe /SetValue "\\.\DISPLAY2\Monitor0" 60 3
```

Пока монитор переключается, он игнорирует запись, поэтому настоящий скрипт повторяет команду, пока чтение `60` не подтвердит значение, а потом проверяет, что `AE` больше не 0.

Скрипт запускается задачей планировщика при входе в систему, плюс второй триггер через минуту — на всякий случай. 26 загрузок подряд монитор зависал, и каждый раз скрипт будил его с первой попытки.
