Estou procurando uma solução para isso há muito tempo. Compartilharei o que aprendi até agora, mas, por favor, perdoe a resposta menos que completa (atualizarei conforme encontrar mais).
O que eu recolhi -
As conexões HDMI e DisplayPort são "Hot Plug Detectable" - sempre que um dispositivo é conectado a um desses, ele se comunica de duas maneiras entre ele e o dispositivo principal. É por isso que o Windows fará malabarismos com seu monitor / desktops quando você conectar ou desconectar um monitor com um desses tipos de conexão. Isso não acontece com as conexões DVI, porque o Windows não sabe quando o dispositivo está ligado ou desligado.
O problema com isso - sempre que o dispositivo é desativado, o Windows é desinstalado do sistema. Quando você liga o dispositivo novamente, o Windows o configura como um dispositivo completamente novo . Eu especulo isso é o que está causando a configuração de som HDMI para continuar a redefinir para Stereo - o dispositivo de som / configuração para minha saída de som AMD HDMI está sendo "desinstalado" sempre que eu desligar meu monitor (ou reiniciar, dormir, etc.) então é reinstalado como um novo dispositivo quando eu o religar novamente, ... redefinindo a configuração do alto-falante para o padrão de estéreo do Windows.
The issue is hardware polling. Switching desktop cloning/extending modes in windows is not the solution.
I use a single 27" with Displayport, when I power off my screen, windows uninstalls my screen and resets the running screen resolution to 800x600. This means when I power on my screen, all windows/programs left open are resized to 800x600 and pushed into the top-left corner. Thankfully win7 remembers my icon positions when the desktop returns to 2560x1440 else I would have put my foot through the screen by now.
Displayport is hotswappable thus hardaware polling monitors the connected screens state, if you disconnect, windows simply removes that display, in single monitor mode, this equates to having no screen at all and windows defaults to the generic 800x600 for compatibility reasons.
While is is working "as intened" for hotplug screens, the side effect is that it completely messes with multi monitor set-ups as the OP explained. It also messes with single display solutions, and to date I can't find any damm way to disable this other than hard wiring out a pin on my DP cable to disable the hardware polling.
I can't switch from DP. I need the DP colour bandwidth capabilities for my panel. AMD and Microsoft pretend this is not an issue and have nothing to say for themselves, even though either of them could release a fix/option to disable this behavoiur.
(Fonte: link )
Solução possível? Bloqueie o pino 19 (pino "Hot Plug Detect") no seu cabo HDMI. Isso bloqueará a detecção de ativação / desativação feita pelo Windows, para que o dispositivo pareça estar conectado e, portanto, não seja desinstalado (levando as configurações com ele).
Esta é uma faca de dois gumes, no entanto, porque o Windows não será capaz de detectar quando o dispositivo está conectado - não é um problema se você manter o computador ligado e funcionando, mas quando você reiniciar o computador, o Windows ganhou ' "veja" o dispositivo HDMI / DisplayPort e, portanto, não o usará.
Aqui está a fonte da solução do pino 19:
SOLUTION: I had the same issue and solved it by cutting the "Hot Plug Detect" pin in my HDMI cable.
Setup: HTPC (and other devices) to receiver to TV all with HDMI cabling.
What I did: Splice the wire and cut the wire associated with the "Hot Plug Detect" pin which is pin 19 of the HDMI connector. It was too hard to remove this pin from such a small connector so I just spiced the wire about an inch and used a continuity tester to determine the correct wire and cut it. For the cable I modified the wire associated with Pin 19, "Hot Plug Detect" was dark purple. (This is the cable between my computer and the receiver.)
Result: Everything works great, the computer detects the tv/monitor through the EDID from the DDC, but the computer DOES NOT detect when my tv/monitor has been turned on/off. The computer acts as though the tv/monitor is always turned on. No resolution re-sizing, no moving windows, no icons changing location, music plays without the tv turned on, etc. The computer simply does not detect the power-on/off of the monitor.
Commentary: While I agree cable/adapter mutilation should not be required, unfortunately it is. Alternatively you can buy a $40-$80 connector box that essentially does the same thing and manages the EDID as well. In my case I figured having a cable with this wire cut was worth it because I will always have a use for it, and my HDMI cables only cost $4 as opposed to $40. If you really want I'm sure you could put an inline switch rather than just cutting the wire.
Summary: MS clearly has no intention of fixing this "feature". Modifying cables or connectors to remove the "Hot Plug Detect" connection is a very good and easy solution. This works for VGA, DVI, and HDMI connections and once done your computer will always assume your tv/monitor is turned on. This is the way to disable display auto-detection.
(Fonte: link )
Outra possível solução que tentei é bloquear a chave de registro específica que contém a configuração de alto-falante do Windows. Isso impede que o Windows altere / sobregrave, evitando que o Windows seja redefinido para uma configuração "Stereo" padrão.
O problema com isso, no entanto, é o mesmo problema descrito acima - como o Windows está desinstalando e reinstalando o monitor (e o dispositivo de som) toda vez que é desligado / ligado, não importa o bloqueio da chave do registro para isso, porque a chave está "desatualizada" / vazia / não usada na próxima vez que o monitor for desligado / ligado. Cada vez que ele é ligado novamente, o Windows cria um ID de dispositivo completamente novo para ele, junto com uma nova configuração de chave de som / configurações no registro.
Outra solução que já contemplei é a automação da configuração correta das caixas acústicas na configuração de som do Windows com um programa personalizado que estou escrevendo sozinho. Eu comecei a escrever um script AutoHotKey que, quando executado, essencialmente faria o trabalho de entrar na configuração de som do Windows, definindo uma configuração de alto-falante 7.1 e, em seguida, aplicando e salvando a configuração. Idealmente, esse script será executado sem GUI sem a necessidade de abrir visualmente o painel de controle de som e as janelas de configuração. Basicamente, ele puxará os "bastões de fantoches" dos bastidores para realizar isso de maneira não visual, para que não interfira com seu trabalho e você não tenha que ver isso acontecendo.
Este programa monitora o dispositivo / configuração de som atual no Windows e detecta quando ele está definido como "Estéreo" ou pode iniciar uma configuração de alto-falante 7.1 sempre que o computador for reiniciado, sair do modo de suspensão ou monitor ligado.
E essa é a essência do que eu tenho até agora.