Como posso parar o reposicionamento das janelas depois de acordar do sono?

116

Eu coloco meu sistema de vários monitores em suspensão quando não está em uso. Depois que eu acordo, todas as janelas são reposicionadas em uma tela diferente. O padrão mais próximo que consigo pensar é que as janelas que estavam na tela principal mudam para a segunda tela. Parece que ele desconecta a tela principal antes de dormir, o que por sua vez altera todas as janelas para a segunda ou terceira tela.

Edit: Aqui está a placa de vídeo que estou usando -> SAPPHIRE FleX 100322FLEX Radeon HD 6450

Kingamoon
fonte
1
Você precisa especificar os adaptadores gráficos que está usando, isso provavelmente é culpa deles.
Shinrai 25/07/12
3
Eu encontrei a solução definitiva para isso: fazer como Stephen, ( ST99 ), diz aqui na resposta nono
Soldeplata Saketos
mesmo problema está no kubuntu, alguém tem uma solução para isso?
Waqleh
Não foi possível adicionar como resposta, mas depois de ler essa resposta e essa resposta , achei a solução uma manipulação de HKLM \ SYSTEM \ CurrentControlSet \ Control \ GraphicsDrivers \ Configuration. Com todos os monitores adicionais desconectados, exclua todas as chaves nesse caminho e reinicie o PC. Observe a nova chave adicionada a esse caminho (A). Reconecte os monitores e observe mais novas chaves adicionadas (B). Defina as configurações de exibição conforme desejado. Nova chave será adicionada novamente (C). Cada tecla representa uma configuração de exibição. Exclua a chave indesejada (provavelmente a tecla B).
Neo

Respostas:

34

O problema é mais provável com o driver gráfico. Sempre que um único monitor é desconectado de uma configuração de multimonitor no Windows, o Windows tenta mover tudo dessa tela para a (s) tela (s) restante (s). Normalmente, isso não ocorre ao suspender / hibernar / desligar o computador. Portanto, é provavelmente por causa do driver gráfico executando um dos seguintes procedimentos:

  • 'Desconectando' os monitores quando você coloca o computador em modo de suspensão; portanto, quando o Windows é ativado, ele deve determinar novamente onde colocar tudo.
  • Reconhecendo os monitores em uma ordem diferente cada vez que você tira o computador do modo de suspensão, forçando o Windows a reorganizar as janelas do aplicativo.

Verifique se há uma atualização no driver gráfico, acessando o site do fabricante do chipset.

Tanaki
fonte
1
FYI: Meus drivers são da Intel, então presumi que eles foram assinados e distribuídos com as Atualizações do Windows, mas não eram.
Leo
1
Problema semelhante aqui. Eu tenho um laptop Dell com adaptador gráfico nVidia. A instalação de um driver mais recente da nVidia em vez do driver da Dell corrigiu o problema.
Chris Jones
1
Problema semelhante aqui. drivers OEM Intel HD 4600 mais recentes. pode ser que eu deveria verificar os drivers do fornecedor do PC (HP)?
Falco Alexander
2
Mesmo problema com um 7i5bnk NUC - tem drivers mais recentes da Intel
niico
46

Esta é uma pergunta antiga, mas se alguém chegar aqui com o mesmo problema, sugiro tentar a solução postada aqui:

http://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/windows-7-movesresizes-windows-on-monitor-power/1653aafb-848b-464a-8c69-1a68fbd106aa

Estou executando o Windows 8.1 com dois monitores de 2560x1440 no DisplayPort. Ao acordar, todas as minhas janelas foram empurradas para uma tela e algumas delas foram redimensionadas. Isso corrige o problema para mim; agora todas as minhas posições e tamanhos de janela são preservadas. Aqui está o conteúdo do link relevante:

Eu encontrei uma solução alternativa. Usando o Sysinternals ProcessMonitor, descobri que o Windows estava acessando o seguinte caminho do Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

Meu sistema tinha três entradas:

  • DELF003YY7707BR0MUL_30_07D7_6A^9A3774EB79DEE3E3E38496CC7DF4D936
  • QHD32000001_31_07D6_D5^63E1ABDD175E7871DCAEB710418A0F75
  • SIMULATED_8086_2A42_00000000_00020000_1010100^CDE365D1B3F0942F0CF38BFB8E127AB4

Sob cada uma há uma árvore chamada 00. Duas das chaves são:

  • PrimSurfSize.cx
  • PrimSurfSize.cy

Sob 00havia outro ramo também chamado 00. Duas das chaves são:

  • ActiveSize.cx
  • ActiveSize.cy

Nas duas primeiras configurações (ou seja, DELF00...& QHD3...), as chaves acima eram 1440x900; portanto, elas não estavam envolvidas.

O terceiro ( SIMULATED...) foi definido para 1024x768.

Eu mudei para 1600x900 e o problema foi resolvido.

Além disso, mudei a resolução (via painel de controle) para 1920x1080, o problema de mudança / redimensionamento retornou, mas o canto inferior direito foi definido para 1600x900, ou seja, as SIMULATED...configurações.

Portanto, por algum motivo, uma das configurações não é definida corretamente.

Não sei por que existem três configurações, usei apenas um monitor.

John Freeman
fonte
15
Simplesmente exclua todo o HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ GraphicsDrivers \ Configuration, ele também funciona e é mais rápido.
FarO 25/10/16
3
Excluir a entrada não funciona para mim (Windows 10). Assim que eu ligo o monitor, a entrada 'SIMULADO' é criada novamente. A solução original funciona (ou seja, modifique cada ocorrência de 1024.768 com a resolução real).
FractalSpace
2
Aqui está outra publicação relacionada que encontrei no Microsoft Answers for Windows 10. answers.microsoft.com/en-us/windows/forum/windows_10-hardware/…
Chiramisu
1
A exclusão de toda a configuração conforme sugerido pelo @OlafM funciona perfeitamente. No meu caso, o Windows Hat cerca de 30 entradas. Após a reinicialização, apenas um foi recriado, contendo apenas os monitores que eu realmente conectei ao int.
maja
1
Eu estava nervoso por excluir tudo na pasta Configuração, mas fiz uma exportação primeiro e a exclusão de tudo que corrigiu o problema. Após o resumo, tive que definir a ordem do monitor e ela não parece ser corrigida.
22418 drooh
13

Se o seu computador possui gráficos HD Intel, é necessário definir as opções de extensão de exibição (e configurações de resolução) no painel de controle de gráficos da Intel. Se você fizer isso nas configurações de vídeo do Windows, ele será redefinido depois que você sair do modo de suspensão.

Aqui está uma captura de tela.

insira a descrição da imagem aqui

bytestorm
fonte
Isso não mudou nada para mim. Ou preciso limpar completamente as configurações do Windows antes de fazê-lo com o software Intel?
Christophe Drevet-Droguet
1
Funcionou para mim depois de redefinir as configurações e depois aplicar a partir dos gráficos da Intel.
Tidhar Klein Orbach 07/11
Eu apenas mudei alguma opção e depois a revirei. Ele ativou o botão "aplicar" e salvou a configuração do driver. Funciona muito bem após o bloqueio manual. Vou ver o que acontece depois de um longo período.
Aldian
Isso funcionou para mim no Windows 10 e salvou minha sanidade.
shoelzer
9

Acho que encontrei uma solução alternativa para esse problema, combinando as idéias dessas postagens .

(meu PC é o Windows 10 TH2, Intel HD4600 com porta HDMI, monitor Changhong 4k)

Aqui está o procedimento.

  1. Exclua todas as entradas extras do registro em ... GraphicDrivers \ Configuration e GraphicDrivers \ Connectivity, deixando apenas a entrada correspondente ao meu monitor (MST00301 ...)

  2. Antes de colocar o monitor em suspensão, basta digitar a tecla combinada "WIN" + "D" para minimizar todas as janelas da área de trabalho.

  3. Depois de ligar o monitor, digite "WIN" + "D" novamente para restaurar todas as janelas.

Kang
fonte
1
Eu acho que o Win + D não é necessário. Após excluir todas as entradas e reiniciar o PC, o monitor externo é adicionado novamente ao registro. Depois disso, parece funcionar como esperado. Talvez o Windows tenha sido confundido com muitas configurações diferentes. No meu caso, eu tinha 12 entradas e agora existem apenas 2: maxrev.de/…
mgutt 05/04
Isso funcionou para mim, mas somente depois de corrigir a nova chave SIMULATED_ .... Após a reinicialização, eu tive duas novas entradas em Configuração e conectividade. A entrada SIMULATED_ 00 tinha 1024, 768 e 4096 para os valores de cx, cy e stride, que estão incorretos. Copiei apenas esses valores da outra chave, que parecia estar correta para o meu monitor, e reiniciei. Eu tenho um único 40" monitor de 4K, a Wasabi Mango UHD400 e problema foi corrigido.
pixelgrease
Para mim, o truque do Win + D funciona, mesmo sem alterar o registro, o que não funcionou. Observe que a área de trabalho não precisa ser minimizada: os ícones da área de trabalho que estão fora da caixa de 1024x768 não serão movidos após desligar e ligar o monitor novamente. Além disso, as janelas maximizadas não sofrem o problema de redimensionar / mover.
Roland
4

Nem todas as placas NVidia suportam a capacidade de falsificar o EDID, e não é apenas o sono que causa esse problema. Se um monitor for desligado ou desconectado brevemente, poderá causar estragos em um layout de tela cuidadosamente configurado. Como nenhuma das soluções aqui funcionou para mim, escrevi um utilitário para restaurar as posições da janela quando o número de monitores muda. Está disponível com o código fonte aqui .

Garr Godfrey
fonte
1
Testei o programa de @GarrGodfrey e funcionou como um encanto.
Kita
2

Normalmente, isso será causado pelo fato de o driver gráfico não suportar adequadamente os modos de suspensão e, portanto, desabilitar a capacidade de detectar um monitor conectado quando o computador entrar em suspensão.

Atualize seus drivers gráficos do fabricante para resolver o problema.

Se o problema ainda não tiver sido resolvido após a atualização dos drivers, pode ser devido a um EDID (ID de exibição invulgarmente relatado). Geralmente, você pode forçar a detecção de um monitor no painel de controle do driver gráfico.

No entanto, se isso não estiver disponível, você poderá usar a janela Resolução do Windows para detectar dispositivos enquanto o monitor estiver desconectado e, em seguida, selecionar a tela que exibirá "Outra tela não conectada" e, em Múltiplas telas, você poderá selecionar e "Tentar conecte de qualquer maneira ”, que transmitirá um sinal ao monitor pelo tipo de porta que você selecionou (o sinal não será interativo); em seguida, conecte o monitor que deve interpretar os sinais enviados a ele corretamente.

A resolução forçada substituirá a detecção da tela e deve persistir durante o sono.

WinOutreach2
fonte
2

O mesmo problema aqui no Windows 8.1 e no Macbook Air 2013 (Intel HD Graphics 5000). Eu tento de tudo. Finalmente, fui para a Intel atualizado com os drivers mais recentes para minha placa gráfica e o problema continua. Depois fui para a propriedade gráfica, com meu segundo monitor ativado em Vários monitores, escolhi 'Desconectar este monitor' e, depois que o segundo monitor foi desconectado, selecionei estender minha área de trabalho e o problema desapareceu. Espero que funcione para voce.

Andrew
fonte
Eu também tenho um Macbook Air 2013 com os drivers mais recentes e isso não resolveu o meu problema. Você tem alguma idéia de como posso resolver isso?
8303 Andrew
2

No meu caso, com três monitores 1920x1080 organizados horizontalmente, parece ter sido corrigido acessando a chave do registro mencionada em outras respostas ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration), encontrando a chave começando com SIMULATEDe alterando todos os valores de 1920 nessa chave para 5760 (1920 três vezes, para os três monitores).

Acho que a SIMULATEDchave é usada para quando o PC entra no modo de suspensão, mas o Windows ainda precisa manter uma área de trabalho no processo de sair / sair do modo de suspensão, mesmo quando os monitores reais ainda não se reportaram.

Wmassingham
fonte
Foi isso que mais me ajudou. Seu segundo parágrafo, especialmente, parece estar correto. Embora ainda tenha janelas, mude para outros monitores quando a tela estiver desligada.
Andrew
1

Para mim, a correção foi https://superuser.com/a/908156/238666 . Resumo: o Windows falha ao ler as informações EDID do monitor na ativação e, no painel de controle da Nvidia, você pode salvar as informações EDID em um arquivo e configurar o PC para lê-las nesse arquivo, em Tarefa: Estação de Trabalho, Exibir Sistema Topologia, Fonte EDID.

Na minha visão limitada, o problema raiz pode ser a placa Nvidia, mas também o Windows, DisplayPort ou o monitor (Lenovo X1 4K)

Roland
fonte
-1

Goste ou não, mas de acordo com o problema conhecido da Dell com o link específico de monitores 4K: http://www.dell.com/support/Article/us/en/19/SLN295708/EN Eu tive que mudar de 59 / 60Hz para 30Hz no meu 3 x Dell P2415Q 4K UHD na Intel 4600 conectado com o estoque DP / mDP da tela e isso me ajudou - como diz o artigo da Dell KB. Aplica-se também a UP3214Q e P2715Q.

O problema não se manifestou em baixa resolução QHD Dell U2515H + mesmo vídeo / PC

A remoção das chaves do registro e as atualizações do driver não estavam ajudando.

Atualize 2018/08: a atualização da placa gráfica para o NVIDIA Quadro P600 não resolveu o problema, permanecendo assim em 30Hz.

kuz8
fonte
1
Urgh, 30Hz é péssimo de usar, então gagueja.
Simon East
@SimonEast, já faz um ano que publiquei esta resposta e usei esses 4K-s em 30Hz, sendo sensível a cintilação fluorescente e de LED e, preferindo a iluminação de halogênio DC 12V sempre que possível, eu diria que 30Hz é bom nesses monitores 4K da Dell . Vids ação Youtube são relativamente suave, mas eu principalmente usar essas telas para código, terminais, e-mails e chats - não se sentir cansado depois de 10-12 horas por dia ..
kuz8