Como persistir as janelas abertas durante o ciclo de desconexão e reconexão do monitor externo?

Como persistir as janelas abertas durante o ciclo de desconexão e reconexão do monitor externo?

Estou usando um monitor externo (um projetor) em modo estendido. Depois de desconectar e reconectar, todas as janelas aparecem na tela principal e a tela estendida fica vazia. Gostaria de manter todas as janelas no monitor externo durante um ciclo de desconexão e reconexão.

Histórico: estou fazendo uma apresentação e a entrada do projetor vem através de um switch HDMI para que eu possa mostrar outro feed no projetor. Quando saio do meu PC, o Windows trata isso como uma desconexão da tela e reorganiza minhas janelas. Quando volto para ele, minha apresentação desaparece e preciso mover as janelas para voltar para onde estava. Parece um problema comum, mas até agora não vi nenhuma solução que funcione para mim.

Revisei várias questões relacionadas, principalmente relacionadas a janelas reorganizadas depois que o monitor entra em suspensão (problema diferente, mesma causa raiz), mas não consigo fazer as soluções funcionarem para mim. Abaixo estão todas as opções que estou considerando. Idealmente, alguém compartilhará uma solução que definitivamente funciona, mas sem ela - excluir algumas opções das abaixo ainda seria útil.

1) Desative a detecção automática de exibição no Windows.

a)Uma maneira de fazer isso que li é definir UselViewHelper como 0 em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TMM Isso foi sugerido aqui: https://www.reddit.com/r/Amd/comments/5jlk82/how_to_prevent_windows_from_rearranging_when/ Eu não trabalhei para mim, no entanto. Tentei, reiniciei, o PC se comporta da mesma forma que antes.

b)Eu li em algum lugar que o Windows não detecta automaticamente um monitor desconectado de uma porta VGA, desde que o cabo ainda esteja conectado. Isso não parece convincente, pois não faria sentido ter manípulos VGA, mas vou tentar. Encomendei um conversor VGA para HDMI porque não tenho uma porta VGA.

2) Simular um monitor externo

Se eu puder adicionar um monitor externo virtual, poderia ter uma configuração com uma área de trabalho estendida espelhada em dois monitores externos (o projetor e o monitor virtual). Então, desconectar e reconectar um dos dois monitores espelhados não deve reorganizar as janelas. O primeiro problema aqui é que nem sei se é possível duplicar a área de trabalho estendida.

O segundo problema é adicionar o display virtual, para o qual entrei em uma toca de opções:

a)HDMI para VGA, depois divisor VGA e, em seguida, stick fictício VGA Isso deve ser relativamente infalível, pois evita o primeiro problema - o Windows não precisará espelhar o segundo e o terceiro monitores

b)USB para VGA, potencialmente com um stick fictício, caso o Windows não saiba que há um monitor conectado à porta VGA (encomendei o adaptador para poder testar isso)

c)Usando um aplicativo móvel para estender a exibição para um telefone, por exemplo, este: https://play.google.com/store/apps/details?id=com.devguru.eltwomonusb&hl=es Portanto, neste caso, não será uma exibição fantasma, mas um dispositivo real - mas as resoluções provavelmente não corresponderão e, devido à abordagem pouco ortodoxa, provavelmente haverá outros problemas.

e)Usando software para enviar a exibição para outro PC ou outro dispositivo. Supostamente, isso pode ser feito pelo Windows Connect, iDisplay, Airscreen, Splashtop Extended Desktop ou talvez alguma outra ferramenta. Isso também resultará em uma tela adicional real, não virtual - ela simplesmente não será conectada por cabo.

3) Mexa nas configurações emHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

Conforme sugerido aqui, entre outros lugares: Como posso impedir o reposicionamento das janelas depois de acordar?

Eu não tinha a entrada SIMULATED conforme descrito online, mas tinha um MSNILNOEDID... que pode servir uma função semelhante. Tenho uma entrada para a tela do meu laptop (HHT00301...) e cerca de uma dúzia para o projetor (BOE06F90...). Todos parecem estar configurados como outras respostas dizem que deveriam ser: 3840x2160 para a tela do laptop, 1920x1080 para as entradas do projetor e a (supostamente) simulada.

4) Use um switch HDMI que fará o PC pensar que o monitor ainda está conectado.

Não sei se tal dispositivo existe e, se existir, não sei como encontrá-lo.

5) Use uma solução de software personalizada para simular uma exibição externa enquanto o projetor estiver desconectado.

Encontrei uma dessas soluções aqui:https://archive.codeplex.com/?p=persistentwindows O projeto foi descontinuado mas consegui baixar o código. Felizmente, é um aplicativo .NET e sou um desenvolvedor .NET, mas parece muito trabalhoso - nem sequer é construído imediatamente, parece complexo e não tenho nenhuma validação de que realmente seria trabalhar.

Responder1

Por favor, tente o aprimoramento mais recente doJanelas persistentes

Isenção de responsabilidade: eu sou o contribuidor das melhorias

Responder2

A resposta seria opção1. b) Use saída VGA

Ao inserir um adaptador HDMI para VGA, o Windows o considera um monitor externo e fica feliz em estender a área de trabalho para ele. Em seguida, você pode conectar e desconectar seu monitor externo conforme desejar e as janelas abertas permanecerão onde estão (ou, no meu caso, você pode sair deste feed de vídeo com o switch HDMI e voltar a ele).

Portanto, em vez de conectar diretamente ao switch HDMI da minha saída HDMI, uso um adaptador HDMI para VGA conectado a um cabo VGA para HDMI; parece ridículo e de baixa tecnologia, mas funciona e parece que vai continuar assim até que a Microsoft adicione uma maneira confiável de desativar esse recurso de detecção automática de exibição.

informação relacionada