Я долго искал решение этой проблемы. Я поделюсь тем, что собрал до сих пор, но, пожалуйста, простите за неполный ответ (я буду обновлять, когда найду больше).
Что я собрал -
Соединения HDMI и DisplayPort "Обнаруживаются с возможностью горячей замены" - когда устройство подключено к одному из них, оно обменивается данными между собой и основным устройством в двух направлениях. Вот почему Windows будет манипулировать вашим дисплеем / рабочим столом, когда вы подключаете или отключаете монитор с помощью одного из этих типов подключения. Это не происходит с подключениями DVI, потому что Windows не знает, когда устройство включено или выключено.
Проблема с этим - каждый раз, когда ваше устройство выключается, Windows удаляет его из системы. Когда вы снова включаете устройство, Windows устанавливает его как совершенно новое устройство. Я предполагаю, что именно из-за этого звуковая конфигурация HDMI продолжает сбрасываться в стерео - звуковое устройство / конфигурация для моего звукового выхода AMD HDMI "удаляется" всякий раз, когда я выключаю монитор (или перезагружаюсь, сплю и т.д.), И затем переустанавливается как новое устройство, когда я снова включаю его, ... сбрасывая конфигурацию громкоговорителей в Windows по умолчанию для стерео.
Проблема в аппаратном опросе. Переключение режимов клонирования / расширения рабочего стола в Windows не является решением.
Я использую один 27 "с Displayport, когда я выключаю мой экран, Windows удаляет мой экран и сбрасывает разрешение рабочего экрана до 800x600. Это означает, что когда я включаю мой экран, все открытые окна / программы изменяются до 800x600 и помещаются в верхний левый угол.
К счастью, win7 запоминает мои позиции значков, когда рабочий стол возвращается к разрешению 2560x1440, иначе я бы уже пролистал экран.
Displayport поддерживает горячую замену, поэтому аппаратный опрос отслеживает состояние подключенных экранов, если вы отключаете его, Windows просто удаляет этот дисплей, в режиме одного монитора это равносильно отсутствию экрана вообще, и по умолчанию для окон используется общий формат 800x600 по причинам совместимости.
Хотя он работает "как задумано" для экранов "горячей" замены, побочным эффектом является то, что он полностью портится с настройками нескольких мониторов, как объяснил ОП. Это также портит решения с одним дисплеем, и на сегодняшний день я не могу найти какой-либо чертов способ, как отключить это, кроме жесткой разводки булавки на моем кабеле DP для отключения аппаратного опроса.
Я не могу переключиться с DP. Мне нужны возможности цветовой полосы DP для моей панели. AMD и Microsoft делают вид, что это не проблема, и им нечего сказать самим, хотя любой из них может выпустить исправление / опцию, чтобы отключить это поведение.
(Источник: http://www.overclock.net/t/1235582/dealing-with-displayport-hdmi-autodetect#post_18114801 )
Возможное решение? Заблокируйте контакт 19 ("Hot Plug Detect") на вашем кабеле HDMI. Это заблокирует обнаружение вкл / выкл, выполненное Windows, поэтому устройство будет оставаться подключенным и, следовательно, не будет удалено (принимая ваши настройки вместе с ним).
Однако это обоюдоострый меч, потому что Windows не сможет определить, когда устройство подключено - не проблема, если вы продолжаете работать на компьютере, но при перезагрузке компьютера Windows не увидит. "устройство HDMI/DisplayPort и, следовательно, не будет его использовать.
Вот источник решения для вывода 19:
РЕШЕНИЕ. У меня возникла та же проблема, и я решил ее, обрезав контакт "Hot Plug Detect" в своем кабеле HDMI.
Настройка: HTPC (и другие устройства) для приёмника к телевизору с кабелем HDMI.
Что я сделал: соедините провод и обрежьте провод, связанный с контактом "Hot Plug Detect", который является контактом 19 разъема HDMI. Было слишком сложно извлечь этот вывод из такого маленького разъема, поэтому я просто приправил провод примерно на дюйм и использовал тестер непрерывности, чтобы определить правильный провод и обрезать его. Для кабеля, который я модифицировал, провод, связанный с контактом 19, "Обнаружение горячей замены" был темно-фиолетовым. (Это кабель между моим компьютером и приемником.)
Результат: все работает отлично, компьютер обнаруживает телевизор / монитор через EDID от DDC, но компьютер НЕ обнаруживает, когда мой телевизор / монитор был включен / выключен. Компьютер работает так, как будто телевизор / монитор всегда включен. Нет изменения размера разрешения, нет движущихся окон, нет значков, изменяющих местоположение, музыка воспроизводится без телевизора и т.д. Компьютер просто не обнаруживает включение / выключение монитора.
Комментарий: Хотя я согласен с тем, что увечья кабеля / адаптера не требуются, к сожалению, это так. В качестве альтернативы вы можете купить соединительную коробку за 40-80 долларов, которая, по сути, делает то же самое и управляет EDID. В моем случае я подумал, что кабель с этим отрезком провода стоил того, потому что я всегда буду его использовать, а мои кабели HDMI стоят всего 4 доллара, а не 40 долларов. Если вы действительно хотите, я уверен, что вы могли бы включить встроенный переключатель, а не просто перерезать провод.
Резюме: MS явно не собирается исправлять эту "особенность".
Модификация кабелей или разъемов для удаления соединения "Hot Plug Detect" - очень хорошее и простое решение. Это работает для подключений VGA, DVI и HDMI, и после этого компьютер всегда будет считать, что телевизор / монитор включен. Это способ отключить автоопределение дисплея.
(Источник: http://social.technet.microsoft.com/Forums/windows/en-US/8a9b5aa7-fe33-4e6d-b39b-8ac80a21fdc2/disable-monitor-off-detection-how#71b98215-6f2a-4603-8c97 -68bfdbc8fc3b )
Другое возможное решение, которое я пробовал, - это блокировка определенного раздела реестра, который содержит конфигурацию динамиков Windows. Это останавливает даже Windows от изменения / перезаписи, предотвращая сброс Windows к конфигурации по умолчанию "Стерео".
Проблема с этим, однако, та же проблема, что и выше - поскольку Windows удаляет и переустанавливает монитор (и звуковое устройство) при каждом его включении / выключении, не имеет значения, что я блокирую ключ реестра для него, потому что ключ "устарел" / не используется / не используется в следующий раз, когда монитор выключен / включен. Каждый раз, когда он снова включается, Windows создает для него совершенно новый идентификатор устройства, а также новый ключ / параметры настройки звука в реестре.
Другое решение, которое я рассмотрел, - это автоматическая настройка правильной настройки колонок в конфигурации звука Windows с помощью собственной программы, которую я пишу сам. Я начал писать скрипт AutoHotKey, который при запуске по сути сделает работу по настройке звука Windows, настройке динамиков 7.1, а затем применению и сохранению конфигурации. В идеале этот скрипт будет работать без графического интерфейса без необходимости визуально открывать панель управления звуком и настраивать окна. По сути, это потянет закулисные "марионеточные струны", чтобы выполнить это не визуально, чтобы это не мешало вашей работе и вам не пришлось бы видеть, что это происходит.
Эта программа будет либо отслеживать текущее звуковое устройство / конфигурацию в Windows и определять, когда для него установлено значение "Стерео", либо она может просто инициировать настройку 7.1-динамиков при каждом перезапуске компьютера, выходе из спящего режима или включении монитора. ,
И это суть того, что я получил до сих пор.