Como mover janelas que se abrem fora da tela?

272

Eu tenho uma configuração de monitor duplo e, recentemente, brinquei com as configurações de posicionamento, e alguns dos meus aplicativos de janela única fazem o favor de preservar onde eles foram fechados pela última vez e abrir na mesma posição posteriormente. Infelizmente, isso agora os coloca fora da área visível das minhas telas!

Existe alguma maneira de forçar uma janela específica para a área visível?

Matthew Scharley
fonte
2
Este ainda é um problema no Windows 10! Eu tenho 3 monitores e só uso um 'aqui e ali' ... quando o faço, e depois paro de usá-lo, alguns programas abertos são padrão para abri-lo. Eu tenho que fazer a seta esquerda + vitória para finalmente voltar ao monitor principal.
1
Ainda é um problema, sete anos depois ...
Jack Wasey
Possível duplicata de superuser.com/questions/1206086/…
SDsolar

Respostas:

194

Para usuários do Windows 7 e posteriores: Windows Key+ Shift+ ou moverá a janela selecionada para o monitor nessa direção.

andho
fonte
2
Graças a isso, eu tinha um aplicativo com uma janela não padrão para que a técnica Alt-Space não funcionasse (Foxit Reader no Windows).
precisa saber é o seguinte
3
Também digno de nota é a vitória + esquerda / direita / para cima, que coloca a janela cobrindo metade do monitor ativo (em ambos os lados) ou maximiza-o. Isso deve funcionar em todas as condições que encontrei e também são teclas muito úteis (exceto quando eu continuo pressionando-as ao tentar fn + teclas de seta: P).
Kat
11
Isso não faz nada no meu Windows 10 Pro x64
Mike 'Pomax' Kamermans
3
@ Mike'Pomax'Kamermans: Engraçado. Essa é a única coisa que funciona no meu laptop Windows 10 Pro x64 para mover uma janela do Emacs que se abre fora da tela.
Mike Sherrill 'Cat Recall'
2
Uau, não acredito que nunca soube disso. Alguém ainda acha isso útil 8 anos depois :)
veryRandomMe 4/17/17
433

Eu uso essa abordagem:

  • Use Alt+ Tabpara alternar para o aplicativo fora da tela.
  • Pressione Alt+ SPACEpara exibir o menu do sistema (você não o verá porque está fora da tela)
  • Pressione Rpara selecionar a opção de menu "Restaurar" para garantir que as janelas não sejam maximizadas (você não pode movê-lo se estiver maximizado)
  • Pressione Alt+ SPACEnovamente e, em seguida, Mpara selecionar a opção de menu "Mover".
  • Pressione uma das teclas de seta para iniciar o movimento.
  • Agora basta usar o mouse para colocar a janela onde quiser.

Se você estiver usando uma versão não inglesa do Windows, as opções de menu "R" e "M" provavelmente serão diferentes.

Terje Mikal
fonte
8
Muito obrigado "Terje Mikal" por sua solução, que me salvou. Mas, como o problema só acontece desde que o Windows 7 removeu a boa e antiga solução (clique com o botão direito do mouse no botão App na barra de tarefas), existe uma solução ainda melhor, publicada por "kmote" em 18 de junho de 2013 17:45 em "Emigrante" 10 out 2010 08:50: «No Windows 7, você precisa pressionar a tecla SHIFT com o botão direito do mouse no botão da barra de tarefas»
Michel Merlin
1
Tentei todos os outros passos, mas iniciar o movimento com as setas do teclado é o que finalmente fez ... uau. E eu estava tão perto de reinstalar o aplicativo!
Philip
1
Com o aplicativo com o qual estou lidando, o Restore está acinzentado, mas o Maximize funciona nessa fase e, portanto, a mudança não é necessária. Maximize para a vitória!
precisa
Eu faço como acima, mas a seguinte combinação também funciona para mim, Alt + Tab, Alt + Espaço, M e pressione Esc, isso também parece funcionar
Mz A
É quase 2020, ainda lidando com isso.
Mert
14

Para o Windows 10, a fim de usar o antigo, mova a janela com o truque das teclas do cursor, Shiftpressione a tecla ao abrir o menu de contexto na barra de tarefas.

insira a descrição da imagem aqui

Informações de How To Geek

Brad Patton
fonte
3
Nas versões atuais do Windows 10, você também pode passar o mouse sobre a barra de tarefas e segurar por um segundo, o que fará com que uma exibição em miniatura da janela apareça. Clique com o botão direito do mouse na miniatura para exibir o menu de contexto "antigo" como um clique com a tecla Shift.
Coderer
1
@ Codificador: O comentário é realmente útil, eu não sabia disso. Eu pensei que eles removeram completamente.
Oak_3260548
Eu esqueci completamente disso! Eu acho que você também pode clicar com o botão direito do mouse se o botão da barra de tarefas representar uma janela. Você obtém um menu de contexto diferente se houver mais de uma janela para o aplicativo em questão.
Coderer 29/08
12

Você pode clicar com o botão direito do mouse no botão do programa na barra de tarefas e clicar em "Mover". Agora você pode usar os botões de seta do teclado para mover a janela para onde pode vê-la. Exige alguns ajustes, às vezes as janelas ficam "presas" nas bordas dos monitores. Você também pode tentar usar o mouse, mas o teclado é um pouco mais confiável se você ainda não pode ver a janela ;-)

Emigioso
fonte
2
Não sabia sobre o teclado, mas você não pode usar o mouse se estiver fora da tela, já tentei isso.
Matthew Scharley 10/10/2009
2
Você poderá usar as teclas de seta mesmo se estiverem fora da tela, a menos que exista algo fora do padrão no sistema que impeça isso. Essa sempre foi minha resposta padrão para pessoas que enfrentam esse problema.
Music2myear
9
Depois de pressionar pelo menos uma tecla de seta, a janela é "anexada" ao mouse e você pode movê-la com o mouse (sem clicar!) Essa abordagem de uma tecla mais o mouse geralmente é mais rápida do que usar apenas as teclas.
precisa
8
No Windows 7, você precisa pressionar a tecla SHIFT com o botão direito do mouse no botão da barra de tarefas.
kmote
Esta é a única solução que funcionou para mim ...
sebagomez
8

Antes de haver a barra de tarefas, eu costumava corrigir esse problema Alt+Spacepara abrir o menu da janela e depois Mpara a função Mover. As teclas de seta permitem mover a janela de volta à tela.

Greg Hewgill
fonte
+1 com ressalva de que eles não se moverão se forem maximizados para uma tela, isso pode ser um problema se as janelas não estiverem simplesmente "além dos limites", mas estiverem em uma tela fictícia. Eles podem ser para o OP, já que a maximização deveria ter coberto toda a resolução da tela ocupada.
Mckenzm #
8

Outra maneira rápida é clicar novamente na barra de tarefas e selecionar Cascade Windows.

T. Kaltnekar
fonte
4
Esta é uma maneira bastante feio de fazê-lo porque ele vai afetar todas as minhas janelas abertas (e eu normalmente têm pelo menos um navegador abrir, bem como, se não meia dúzia de outros)
Matthew Scharley
1
É verdade que é mais rápido. Além disso, você pode fechar a janela que estava fora da tela e usar a cascata de desfazer depois daquilo que restaurará as posições das janelas. Não sei se ele também restaurará a posição da janela que estava fora da tela para essa posição, pois não posso tentar (apenas um monitor).
5130 K T. Kaltnekar
5

Encontrei esse problema e absolutamente nada funcionou para mim. Então, entrei no Gerenciador de tarefas e cliquei com o botão direito do mouse no programa que estava fora da tela. Mudar para não funcionou, nem trouxe para a frente. Para observar, essa era uma janela estática; portanto, maximizar não estava disponível na barra de tarefas. Mas você pode maximizar através do Gerenciador de Tarefas, e isso leva à sua tela principal! A partir daí, você pode fazer o que precisar com a janela. :)

Leo
fonte
Obrigado por esta resposta. Clicar com o botão direito e maximizar no Gerenciador de tarefas foi a única coisa que funcionou para mim.
um codificador
5

Editar: descontinuado de acordo com os comentários

Para resolver rapidamente esse problema no futuro e posicionar os aplicativos na tela dupla, recomendo o Winsplit Revolution . Isso reduz a solução desse problema ao simplesmente pressionar Ctrl-Alt e uma tecla num-pad para colocar a janela de volta exatamente onde você deseja.

Andy
fonte
infelizmente não é mais livre
Charbel
Sim, parece bom, mas tenho uma política estrita de não pagar, a menos que queira fazê-lo. Como no Lastpass ou Acronis True Image. E com minha agenda, é muito possível que demore mais de 30 dias para que o problema volte a aparecer, para que períodos de teste não funcionem para mim.
SDsolar
1
Infelizmente, o WinSplit Revolution foi descontinuado e não há novas atualizações. "Substituído por" MaxTo ", atualmente US $ 19
TT--
1
O WinSplit-Revolution é um freeware e ainda está disponível para download, se você o procurar . A última versão foi 11.04, lançada em 2011. Funciona no Windows 10. A fonte v9.02 modificada está disponível no GitHub como WinSplit-Reloaded . É um produto incrível.
Ben
@ Ben, obrigado pelos links. Eu fui para o link na resposta e citei essa informação. (Agora, a página diz "O WinSplit Revolution não está mais disponível, mas oferecemos uma excelente alternativa.") O leia-me desse fork do GitHub é informativo e menciona especificamente a "versão 9.02, divulgada publicamente em 2009".
TT--
3

Eu uso uma ferramenta bacana chamada Shove-it, que simplesmente verifica se alguma janela está fora da borda da tela e a coloca de volta na tela novamente. É um software antigo (e a página inicial prova isso), mas funciona em todas as versões do Windows.

Torben Gundtofte-Bruun
fonte
Link agora está morto :-(
danio 23/09
:-( por outro lado, esta solução pode ter sobrevivido a si mesma. Será que isso ainda acontece? Faz anos desde a última vez que eu precisei disso.
Torben Gundtofte-Bruun
O instalador apenas trava para mim (no Windows 7).
mhenry1384
@ mhenry1384 bem ele é de 14 anos (e 32 bits), não podemos realmente esperar que ele funcione com novas versões ..... (64 bit?)
Torben Gundtofte-Bruun
3

Eu acabei de encontrar esse problema com o Git GUI no Windows 7, que é baseado no Tk e, como tal, tende a aparecer de maneiras estranhas às vezes no Windows. Tentei bater no Alt-Space e usar o comando move para colocá-lo de volta à vista, mas parecia preso. Maximizar isso traria de volta, mas se eu colocasse de volta no modo de janela, ele desapareceria novamente.

O que fiz foi maximizá-lo, agarrar a barra de título e arrastá-la para o lado da tela para que o Aero Snap o dimensionasse para metade do tamanho da tela e coloque-o no modo de janela. Depois disso, arrastei-o para fora da lateral da tela e recuperei o controle.

não utilizado
fonte
Tantas respostas mais votadas, mas nenhuma funcionou para mim. Isso fez.
Dan Nissenbaum 04/04
A GUI do Git também me trouxe aqui, mas eu a resolvi com a combinação Shift-RightClick (no ícone da barra de tarefas), Mover, tecla de seta e depois mouse (para colocar a janela onde deveria estar). A solução da Emthigious / Brad Patton funciona.
Mcalex
1

Eu tive o mesmo problema com o winamp. A única solução (insatisfatória) que encontrei até agora: alterar a resolução da tela para outra diferente e voltar

Thomas

Thomas
fonte
1

Você pode usar o NIRSOFT WinLister. Percebi que o método "Mover" não está disponível no Windows 7 quando você está usando o tema clássico, e vários outros métodos falharam, por isso estou postando minha alternativa "Se tudo mais falhar".

  1. Baixe o aplicativo WinLister aqui .

  2. Execute o WinLister como administrador e selecione a janela que você deseja retornar à tela. Não funcionar como administrador não dará ao aplicativo a capacidade de mover as janelas para você.

  3. Clique com o botão direito e selecione “Center Selected Windows” e pronto!

Capturas de tela aqui .

user199343
fonte
1
Ótima dica - esta é a única solução que funcionou para mim nas ferramentas de poder do MS TFS, pois o Alt-Space só abriu o menu da janela do Windows Explorer, e não da sub-janela que estava fora da tela.
Danio 23/09
1

Em alguns casos, apesar de ter várias telas no local remoto, talvez você não tenha acesso a elas a partir do seu local. Os comandos das teclas não funcionarão porque você foi bloqueado para qualquer visualização que não esteja na tela.

Nesse caso, se você puder abrir instâncias adicionais do aplicativo, faça-o. As primeiras instâncias quase certamente aparecerão na barra de tarefas como ainda mais janelas fantasmas. Continue fazendo isso. Eventualmente, eles começarão a preencher a visualização principal. Em seguida, use o ícone da barra de tarefas para clicar com o botão direito e fechar as instâncias fora da tela. Quando NÃO houver instâncias fora da tela abertas, feche as da tela principal. Da próxima vez que você abrir esse aplicativo, ele aparecerá na tela principal e não "fora da câmera".

Greg Mayer
fonte
1
A que você está se referindo: "localização remota", "sua localização", etc ...? Por que o usuário seria "bloqueado para qualquer visualização que não esteja na sua tela"?
Scott
Ele quer dizer VM, Citrix, RDP etc. Você não vai ler multi-4K no seu telefone. Este também é o caso de telas falsas. Alguns usuários corporativos colocam um dongle HDMI para deixar os itens obrigatórios da área de trabalho fora de vista. Voltar a 1 tela real os move de volta.
Mckenzm #
1

Selecione a janela (por exemplo, usando Alt+ Tab). Em seguida, segure Alt+ F7e mova a janela com as teclas de seta de volta à exibição. Feito.

Às vezes, é difícil saber às cegas onde a janela oculta está localizada (e, portanto, como movê-la para a tela). Animações durante a seleção da janela podem ser úteis. Devido à minha configuração (ocasionalmente uso uma segunda tela na parte superior da tela do laptop), as janelas que aparecem fora da tela geralmente ficam abaixo. Segurar Alt+ F7+, Upportanto, os exibe.

Georg Jung
fonte
1

Para qualquer pessoa familiarizada com o PowerShell, tente o seguinte:

  • Copie e cole o código abaixo em uma sessão do PowerShell ISE.
  • Fuga
  • Pressione ALT + TAB / o que for para ativar a janela fora da tela
  • Aguarde alguns instantes (5 segundos após pressionar RUN no script)
  • A janela deve aparecer agora.

Se a janela for uma janela principal, ela será movida para o canto superior esquerdo da tela.

Se a janela for uma janela filho de outro programa, seu canto superior esquerdo será alinhado com o canto superior esquerdo da janela pai.

Add-Type @"
    using System;
    using System.Runtime.InteropServices;

    // https://msdn.microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx
    public struct RECT 
    {
        public long left;
        public long top;
        public long right;
        public long bottom;
    }

    public class User32WinApi 
    {

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633505(v=vs.85).aspx
        /*
            Gets the handle of the in-focus window
            NB: In some scenarios this can be NULL; so code needed to handle such an event
        */
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx
        /*
            top & left are always 0 (i.e. since the rectangle is relative to the window itself)
            bottom & right equal the windows hieght and width, respectively.
        */
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

    }

"@
$repaint = $true 
$windowSize = New-Object RECT

"Quick; get the window you're after in focus; you have 5 seconds..."
Start-Sleep -Seconds 5 #allow 5 seconds for the user to get the window they're after in focus (e.g. using ALT+TAB / whatever)
$activeWindow = [User32WinApi]::GetForegroundWindow()
if ($activeWindow) {
    if([User32WinApi]::GetClientRect($activeWindow, [ref]$windowSize)) {
        if ([User32WinApi]::MoveWindow($activeWindow, 0, 0, $windowSize.right, $windowSize.bottom, $repaint)) {
            "Window moved successfully (hope you agree!)"
        } else {
            Write-Warning "Failed to move the active window"
        }
    } else {
        Write-Warning "Failed to get size of the active window"    
    }
} else {
    Write-Warning "No active window found"    
}

Código original aqui: https://gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

JohnLBevan
fonte
0

coloque o cursor na barra de tarefas .. clique com o botão direito do mouse em selecionar mostrar janela lado a lado .. trará a janela na tela .. e finalmente trará novamente o cursor na barra de tarefas clique com o botão direito do mouse selecione desfazer mostrar a janela lado a lado ..

ravi21
fonte
0

Você também pode usar o UltraMon (não-livre, Windows, GUI) para configurar um atalho de teclado para mover uma janela para o monitor seguinte ou anterior.

insira a descrição da imagem aqui

Franck Dernoncourt
fonte
0

De Mover uma janela para o monitor inferior / superior com um atalho no Windows da Tymric :

Eu escrevi um script AHK.

Uso:

Win+ Alt+ Arrow: Mova a janela ativa para o monitor cuja direção é indicada pela seta. Observe que isso pode fazer com que sua janela se mova para fora da tela se você tentar subir do monitor 2 ou diretamente do monitor 3 em sua configuração. Vou atualizá-lo no futuro.

Win+ Alt+ Number: Move a janela ativa para o número de monitor especificado

#Persistent

SysGet, MonitorCount, MonitorCount


#!Up::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYneg%
  return
#!Down::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYpos%
  return
#!Left::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXneg%, %yPos%
  return
#!Right::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXpos%, %yPos%
  return

#!1::
  GoSub CalculateDisplacement
  WinMove, A, , %xPosOn1%, %yPosOn1%
  return

#!2::
  if (MonitorCount > 1) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn2%, %yPosOn2%
  }
  return

#!3::
  if (MonitorCount > 2) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn3%, %yPosOn3%
  }
  return

#!4::
  if (MonitorCount > 3) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn4%, %yPosOn4%
  }
  return

#!5::
  if (MonitorCount > 4) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn5%, %yPosOn5%
  }
  return

#!6::
  if (MonitorCount > 5) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn6%, %yPosOn6%
  }
  return

#!7::
  if (MonitorCount > 6) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn7%, %yPosOn7%
  }
  return

#!8::
  if (MonitorCount > 7) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn8%, %yPosOn8%
  }
  return

#!9::
  if (MonitorCount > 8) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn9%, %yPosOn9%
  }
  return


CalculateDisplacement:
  WinGetPos, xPos, yPos, , , A
  Loop, %MonitorCount% {
    SysGet, MonitorDimension, Monitor, %A_Index%
    if (xPos > MonitorDimensionLeft and xPos < MonitorDimensionRight and yPos < MonitorDimensionBottom and yPos > MonitorDimensionTop) {
      currentMonitor = %A_Index%
    }
  }
  SysGet, thisMonitor, Monitor, %currentMonitor%
  displaceXpos := xPos + thisMonitorRight - thisMonitorLeft
  displaceYpos := yPos + thisMonitorTop - thisMonitorBottom
  displaceXneg := xPos - thisMonitorRight + thisMonitorLeft
  displaceYneg := yPos - thisMonitorTop + thisMonitorBottom
  Loop, %MonitorCount% {
    SysGet, nextMonitor, Monitor, %A_Index%
    xPosOn%A_Index% := xPos - thisMonitorLeft + nextMonitorLeft
    yPosOn%A_Index% := yPos - thisMonitorTop + nextMonitorTop
  }
  return
Franck Dernoncourt
fonte
0

Eu escrevi uma ferramenta chamada Borderline que moverá automaticamente as janelas fora da tela quando executadas. É necessário executá-lo quando necessário (funciona melhor se você atribuir um atalho de teclado ou colocá-lo no menu Iniciar), mas isso também significa que nem sempre está sendo executado em segundo plano.

jamesdlin
fonte
0

Às vezes, isso resolvia:

  • Clique em WinKey+P
  • Escolha Extendou outra opção e todas as janelas serão colocadas em cascata. Mova a janela desejada para a tela principal.
T.Todua
fonte
-1

Como mover janelas que se abrem fora da tela?

Temporariamente, diminua a resolução da tela, pegue a barra superior com o mouse e mova o centro. Aguarde o sistema restaurar automaticamente a resolução.

  1. DeskTop -> Resolução da tela
  2. Selecione seu monitor, mude para uma resolução mais baixa na configuração atual.
  3. O sistema mostra a nova resolução, pergunta se você deseja manter ou reverter em 30 segundos.
  4. Dentro de 30 segundos, pegue a janela localizada e mova-a para o centro.
  5. Aguarde o tempo limite reverter automaticamente.

Janela movida ...

Russ
fonte