Como faço para restaurar as janelas de volta à tela original ao reconectar o monitor externo?

17

Imagine que você faz isso ...

  1. Conecte seu monitor externo.
  2. Inicie alguns aplicativos, alguns em cada monitor.
  3. Desconecte o monitor externo.
    • Tudo bem, porque todos os aplicativos movem o monitor principal.
  4. Reconecte o monitor externo.
    • Os aplicativos permanecem no monitor principal, mas seria muito bom se eles retornassem ao monitor externo em que estavam antes.

Usando o Windows 10. Existem soluções ou soluções alternativas para mover os aplicativos de volta ao monitor externo automaticamente?

joelsand
fonte
6
Você pode querer ter um olhar aqui - - superuser.com/q/240362/302907
Anaksunaman

Respostas:

1

No passado, usei uma ferramenta Autohotkey chamada Windowpad para isso. Aparentemente, isso foi substituído por uma nova versão aprimorada chamada WindowPadX . Role para baixo para ver o leia-me. A documentação completa está aqui .

Isso foi crucial para mim em vários monitores. Eu adorava poder alternar facilmente uma janela entre os dois.

Você pode definir teclas de atalho para o seguinte (no leia-me):

Possíveis ações a serem configuradas nas teclas de atalho

Ações da janela

Multi-Monitor

WPXA_MoveWindowToMonitor: move a janela entre telas, preservando a posição e o tamanho relativos.

WPXA_MinimizeWindowsOnMonitor: Minimize todas as janelas na tela fornecida

WPXA_GatherWindowsOnMonitor: "Reúna" janelas em uma tela específica.

WPXA_FillVirtualScreen: expanda a janela para preencher a tela virtual (todos os monitores).

Geral

WPXA_MaximizeToggle: maximize ou restaure a janela.

WPXA_TopToggle: alterna "AlwaysOnTop" para uma determinada janela

WPXA_RollToggle: Alterna "Roll / Unroll" para uma determinada janela WPXA_Move: move e redimensiona a janela com base no conceito de "bloco".

WPXA_TileLast2Windows: telha ativa e última janela

Ações do mouse para vários monitores

WPXA_MoveMouseToMonitor: move o mouse para o centro do monitor fornecido

WPXA_ClipCursorToCurrentMonitorToggle: alterna o mouse de recorte para o monitor atual

WPXA_ClipCursorToMonitor: conecta (restringe) o mouse ao monitor fornecido

Ações gerais do mouse

WPXA_MouseLocator: Encontre facilmente o mouse

Você pode encontrá-lo e outras ferramentas em uma "Lista com curadoria de incríveis bibliotecas AutoHotkey, distribuições de bibliotecas, scripts, ferramentas e recursos" aqui

ludinom
fonte
esta lista de recursos sugere que ele pode mover as janelas, mas pode restaurar suas posições para um estado específico? o que significa "reunir" e "rolar / desenrolar com base no conceito de bloco" significa?
TT--
@ TT-- "Reunir" reúne todas as janelas na tela atual. Isso é ótimo quando, por exemplo, eu quero todas as janelas, exceto uma ou algumas janelas em uma tela, e as janelas em que estou focando no meu monitor principal. "WPXA_MaximizeToggle: maximizar ou restaurar a janela" deve alternar entre maximizada e original. "Rolar / Desenrolar ..." oculta a área de trabalho de uma janela e deixa apenas a barra de título exibida, ou passa de um estado de enrolamento para a restauração da janela inteira. Parte disso é da memória e eu posso não estar exatamente correto, mas, se não, é bem próximo.
Ludinom 18/11/19
11
obrigado pelos detalhes adicionais. Parece que o MaximizeToggleWindows restauraria telas diferentes, como eu estava procurando. Acabei usando este 'DockWin' que especificamente faz isso (e nada mais).
TT--
0

Alguns processadores têm suporte para isso, como o painel de controle da Nvidia, que permite aplicar configurações para esse e muitos outros recursos.

Ou você pode simplesmente definir as várias configurações de exibição para espelhar a área de trabalho (em vez de estender) em todos os monitores, se isso funcionar para você.

CymaTechs
fonte
0

Atualmente, os programas Windows - chamados app (lication) - podem salvar a posição de sua janela em um arquivo ou no registro. Se alguém souber onde estão esses dados, eles poderão ser editados manualmente no bloco de notas ou no editor de registro. (entradas incorretas do registro podem causar instabilidade ou erros do Windows)

A criação de uma maneira automatizada deve ser fácil para alguém com um pouco de habilidades de codificação e pode ser iniciada conforme necessário (ou seja, após a recolocação do monitor). Isso pode ser feito por um script de ação, arquivo .bat ou aplicativo nativo.

Os aplicativos em questão precisarão ser fechados antes disso, para que as posições desejadas sejam implementadas.

Outra possibilidade com o recurso "online" (não é necessário reiniciar o aplicativo) seria se o Windows permitir acessar uma janela de um processo por outro. Uma abordagem pode ser as funções SendMessage e WindowProc.

(Neste momento, não tenho certeza se isso se aplica apenas a threads do aplicativo pai ou pode ser feito por threads de outros aplicativos ... e, é claro, exige bons conhecimentos de programação para Windows)

https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

Envia a mensagem especificada para uma janela ou janelas. [...] Se a janela especificada foi criada pelo thread de chamada, o procedimento da janela é chamado imediatamente como uma sub-rotina. Se a janela especificada foi criada por um encadeamento diferente, o sistema alterna para esse encadeamento e chama o procedimento de janela apropriado.

Mensagem WM_Move https://docs.microsoft.com/en-us/windows/desktop/winmsg/wm-move

Enviado depois que uma janela foi movida.

Uma janela recebe essa mensagem através de sua função WindowProc.

https://msdn.microsoft.com/en-us/library/ms633573%28v=VS.85%29.aspx?f=255&MSPPError=-2147217396

Uma função definida pelo aplicativo que processa as mensagens enviadas para uma janela. [...]

DigitalBlade969
fonte
0

Eu uso o UltraMon (acredito que seja de código aberto) e, em determinadas circunstâncias, ele pode fazer isso, se configurado corretamente.

Primeiro, instale o programa UltraMon instalado. Então, quando estiver em execução, digamos que agora você tenha apenas um monitor conectado (não importa o número), crie um perfil:

  • Clique com o botão direito no ícone na bandeja do sistema
  • Clique esquerdo Exibir perfis
  • Clique com o botão esquerdo em novo perfil de exibição, nomeie-o (por exemplo, o que eu faço é fornecer um número que reflete quantos monitores você está usando, como o perfil 1).
  • Agora você tem um. Legal, você pode criar papel de parede para cada monitor, protetor de tela, etc. Obtenha todos os seus ícones da maneira que desejar.
  • Clique com o botão direito do mouse no ícone do sistema.
  • Clique com o botão esquerdo do mouse na área de trabalho Ícones à esquerda Salvar posições

Agora conecte / desconecte outros monitores. Crie um perfil para esta nova configuração. Talvez chame-o de "Perfil 7" por ter 7 monitores conectados. Agora salve as posições dos ícones quando elas estiverem do jeito que você deseja.

Você pode facilmente usar esta ferramenta para alternar entre perfis. Você pode facilmente colocar atalhos na área de trabalho para alternar rapidamente entre perfis.

Por fim, nas opções avançadas, você pode pedir ao UltraMon para fazer isso o tempo todo, automaticamente, mas isso pode exigir uma versão paga (taxa única).

Eu comprei o UltraMon em 2009 por US $ 19,99 e valeu totalmente a pena.

PyTis
fonte
3
Você pode elaborar o "como", as circunstâncias em que ele funciona e como configurá-lo corretamente?
precisa saber é o seguinte
Sim senhor / mãe. Primeiro, instale o programa UltraMon instalado. www.ultramon.com Então, quando estiver em execução, digamos que agora você tenha apenas um monitor conectado (não importa o número), crie um perfil: Clique com o botão direito do mouse no ícone na barra lateral esquerda Clique em Exibir perfis à esquerda Clique em Novo Exibir perfil Dê um nome (é o que eu faço) de quantos monitores você estiver usando, como o Perfil 1. Agora você tem um. Legal, você pode criar papel de parede para cada monitor, screensaves, etc. Obtenha todos os seus ícones da maneira que desejar. Clique com o botão direito do mouse no ícone do sistema. Left Click Desktop Icons Esquerda Salvar Posições
PyTis
Continuando, agora conecte / desconecte outros monitores. Crie um perfil para esta nova configuração. Talvez chame-o de "Perfil 7" por ter 7 monitores conectados. Agora salve as posições dos ícones quando elas estiverem do jeito que você deseja. Você pode facilmente usar essa ferramenta para alternar entre perfis. Você pode facilmente colocar atalhos na área de trabalho para alternar rapidamente entre perfis. Por fim, nas opções avançadas, você pode pedir ao UltraMon para fazer isso o tempo todo, automaticamente para você, mas isso pode ser uma opção paga (taxa única). Comprei o UltraMon em 2009 por 19,99 e valeu a pena.
PyTis 29/08/18
Isso não parece responder à pergunta - a pergunta era sobre restaurar janelas de aplicativos em cada monitor, abordar ícones da área de trabalho (e coisas relacionadas). Parece uma ferramenta útil, mas não relevante.
Bobson 21/01/19
0

Win Redock funcionou melhor para mim. Redock é automático - salva e restaura janelas sem nenhuma intervenção. Magia! Seu código aberto também!

BT
fonte
-1

Se você pressionar + clique com o botão direito do mouse no ícone na barra de tarefas e pressione mover, poderá usar as teclas de seta para mover a janela e a tecla Enter para definir a posição. Eu tive o mesmo problema há alguns anos atrás.

Outra solução é usar o DisplayFusion para encaixar a janela no monitor mais próximo (o único conectado) com a tecla de atalho "Mover todas as janelas para o monitor atual".

hydraxx
fonte
11
por que tão complexo? Se você quiser apenas para ir para outro monitor, em seguida, basta usar o Windows + SHIFT + esquerda / direita
phuclv
-1

Não há soluções para fazer isso; você deve usar a tecla Windows no teclado com as setas à esquerda esquerda, para se mover entre as telas ou a tecla Windows + Shift + esquerda / direita para mover para partes da tela.

A tecla Windows + P também ajuda em situações de vários monitores para ajudar no espelhamento / extensão etc.

Mas, novamente, depois que você desconecta a tela, se essas janelas tiverem metadados, elas desaparecem depois

Pixel
fonte
Na verdade, existem várias soluções. Um ou dois que você mencionou. Alterar a resolução é outra.
Hennes
-2

Você pode fazer isso, se você é um velho "tecladista" como eu; -] Eu descobri isso há séculos, sendo que eu tenho vários meses desde o início dos anos 90, tem sido uma questão muito antiga, entre um pouco UIs diferentes.

A maneira mais fácil que encontrei para aplicativos fora da tela / borda é:

  • Basta selecionar o aplicativo, na barra de tarefas ou Alt-Tab
  • Mantenha a tecla Alt pressionada e pressione a barra de espaço ( Alt- Spacebar)
  • Você verá um menu, na tela principal, cuja opção será "Mover", com o M sublinhado.
  • Como tal, pressione a tecla "M", enquanto o menu ainda está no visor
  • Neste ponto, não aponte / clique em / etc, pois agora você está "reposicionando" a janela ativa (a janela fora da tela).
  • Você pode arrastar o mouse ( sem pressionar o botão por enquanto) e deve ver o aplicativo entrando / saindo das telas principais, o suficiente para colocá-lo em um local mais conveniente para o uso.
  • Como alternativa, você pode usar as setas do teclado para mover o aplicativo, funciona da mesma maneira, mas um pouco mais devagar, para descobrir onde as janelas estão e para que lado estão indo.
  • Depois de ter a janela em um "lugar bom", onde você pode dimensionar / mover ativamente, clique no botão principal do mouse ou, se estiver usando o método do teclado, pressione a tecla "enter".
  • A janela / aplicativo agora deve ser fácil de mover / ajustar.
  • Repita o procedimento para todas as janelas / aplicativos que estão fora da tela.
PeteG
fonte
3
(1) Sua resposta parece sugerir que o OP não tem idéia de como mover janelas, o que é um insulto e ingênuo. O ponto principal da questão é fazer com que o computador se lembre de qual janela estava em qual monitor e fazer com que o computador os restaure automaticamente, sem que o usuário precise se lembrar de onde eles estavam e depois movê-los de volta manualmente, um de cada vez. (2) Além do atalho do teclado Alt + Space, sua resposta é essencialmente a mesma do primeiro parágrafo da resposta do hydraxx . ... (continua)
Scott
(Continua)… (3) Por que você acha que a maneira “mais fácil” de fazer isso é usar o teclado para entrar no “modo de movimento” e depois usar o mouse para fazer a mudança? Como o hydraxx diz, você pode fazer isso inteiramente com o teclado. Ou você pode fazê-lo inteiramente com o mouse, clicando no cabeçalho da janela e arrastando. Você apresentou a solução mais complexa possível.
19417 Scott
Na verdade, é bastante simples, a descrição é um pouco complicada. Não recebo o item de menu "Mover" quando tento a barra de tarefas, ou ela foi substituída ou algo no meu sistema está impedindo a visualização. Concordo que, além do alt-spc, minha resposta é essencialmente a mesma, mas mostrei meu método a dezenas e sempre foi como "uau, isso foi fácil, pergunto-me por que não tentei isso" . Minha resposta permite uma solução apenas para keybd, conforme observado. Existem utilitários para isso também, mas às vezes extensões de shell pode ter efeitos indesejados ...
PeteG
Concordo, porém, que estamos chegando ao mesmo lugar, usando a mesma construção no sistema operacional.
PeteG
Você também pode usar o DisplayFusion para fazer isso. Ele tem uma configuração para "encaixar" a tarefa / janela atual no monitor atual (provavelmente principal).
PeteG