É possível "encaixar" a parte superior / inferior em vez de apenas a esquerda / direita no Windows 7?


125

No Windows 7, eu sei que você pode fazer Windows+ Leftpara colocar uma janela na metade esquerda da tela. Existe um recurso que fará parte superior e inferior?


@RockPaperLizard Você também deve se lembrar que o Windows 7 é realmente antigo e é o único sistema operacional a ter um recurso de snap nativo até o momento. Eu tenho que encontrar um script do tipo "extensão" de terceiros para fazer isso no Mac, por exemplo. Além disso, o Windows 10 tem Snap para todas as direções, incluindo cantos! Em outras palavras, acho que a equipe do Windows realmente tenta no lado UX. Às vezes, a interface do usuário é um teste de personalidade, mas o UX é algo em que o Windows é historicamente muito bom.
Joseph Hansen

@ Joseph Eu realmente concordo que a MS teve muitos sucessos na arena UX. Eles estavam dispostos a explorar um novo território, embora não tenham sucesso comercial, com o Microsoft Bob . Infelizmente, seus sucessos são marcados por muitas falhas abjetas, sendo a mais notável o Windows 8 . Não sei se o fracasso desse projeto foi a equipe de UX ou a recusa da gerência em ouvi-los.
RockPaperLizard

Respostas:


73

Não. As únicas opções de snap disponíveis são:

  • meia pressão esquerda ( Windows+ left)
  • meia pressão direita ( Windows+ right)
  • snap na altura da tela cheia ( Windows+ shift+ up)
  • snap maximizado ( Windows+ up)
  • "desbloquear" ( Windows+ down)
  • encaixe no próximo monitor / monitor ( Windows+ shift+ ( leftou right))

Edit: outras combinações incríveis que você pode gostar:

  • minimizar tudo ( Windows+ m)
  • minimizar tudo menos a janela ativa ( Windows+ Home)
  • Aero espiada (veja a área de trabalho, todas as janelas ficam transparentes) ( Windows+ space)

Puro, eu estava tentando descobrir como manter a posição vertical fixa, mas permitir o movimento horizontal sem usar o snap da tela esquerda / direita e ter que reajustar a largura da janela, e o snap da altura da tela cheia faz exatamente o que eu queria.
JAB

4
Ah, acabei de descobrir que clicar duas vezes na borda superior da barra de título (ou seja, quando a seta vertical dupla é exibida) também diminui a altura da tela.
JAB

7
No Windows 10, agora existe outra opção: depois de encaixar à esquerda ou direita, você pode pressionar upou down, por exemplo, para encaixar na parte superior esquerda . Não é o que o OP queria, mas talvez útil para os outros.
187 Andre Andre

não "snap à largura da tela cheia?" -_-
Shayan

Para o downvoter, esta é a resposta correta para o Windows 7. O Windows 10 tem novas opções de snap ...
Joseph Hansen

58

Eu uso as seguintes etapas para fazer isso:

  1. Windows+ D(para minimizar todas as janelas)
  2. em seguida, use o mouse para colocar as janelas que quero empilhar no posicionamento geral em cada monitor (não se preocupe em redimensioná-las)
  3. clique com o botão direito na barra de tarefas e selecione "Mostrar janelas empilhadas" no menu de contexto e restaure as outras janelas que desejar

Nota: Você deve minimizar as janelas que não deseja que sejam empilhadas. Isto é o que a etapa 1 se destina a fazer.


1
Isso é realmente útil. Eu sei disso desde o win 98, mas nunca o usei no win 7, porque no win XP e nas versões anteriores você pode selecionar botões da barra de tarefas para escolher quais janelas empilhar, mas que não funcionam mais no Windows 7, então quando seleciono a opção empilhará todas as janelas na tela. Blog do TechNet: você sabia: vitrines empilhadas, em cascata ou lado a lado
phuclv

Isso é útil, mas empilhará todas as janelas em todos os monitores.
Leo

Isso ainda funciona para o Windows 10 também.
snickers10m

@ Leo - e em todos os desktops também. Interessante :)
J Bryan Price

23

Escrevi um pequeno script do AutoHotKey para fechar as janelas de cima a baixo, porque também estava frustrado com isso. Você pode baixá-lo no meu site: http://www.pixelchef.net/how-snap-windows-horizontally-windows-7

; Move window up (Windows + Shift + UP ... NOTE must maximize window first)
+#Up::
  WinGetPos,X,Y,W,H,A,,,
  WinMaximize
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,

  ; if this is greater than 1, we're on the secondary (right) monitor. This
  ;   means the center of the active window is a positive X coordinate
  if ( X + W/2 > 0 ) {
  SysGet, MonitorWorkArea, MonitorWorkArea, 1
  WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
  }
  else {
  SysGet, MonitorWorkArea, MonitorWorkArea, 2
  WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
  }
return

; Move window down (Windows + Shift + DOWN ... NOTE must maximize window first)
+#Down::
  WinGetPos,X,Y,W,H,A,,,
  WinMaximize
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,

  ; if this is greater than 1, we're on the secondary (right) monitor. This
  ;   means the center of the active window is a positive X coordinate
  if ( X + W/2 > 0 ) {
  SysGet, MonitorWorkArea, MonitorWorkArea, 1
  WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
  }
  else {
  SysGet, MonitorWorkArea, MonitorWorkArea, 2
  WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
  }
return

Funciona, mas também abre a tela inicial no Windows 8.1. Como remediar esse problema?
Gabriel Hautclocq

2
Era exatamente o que eu esperava encontrar. Obrigado! Notei que o comando não altera a largura da janela. Alguma maneira de acessar automaticamente a largura da tela cheia quando ela se encaixa para cima / para baixo?
Alex P. Miller

1
Isso não funciona para mim no Windows 10. Eu tenho 3 monitores, dos quais 2 estão no modo vertical. Você está falando explicitamente sobre duas áreas de trabalho, sem saber se essa é a causa. Além disso, você deve mencionar o que combinação de teclas você deveria pressionar nesta resposta para as pessoas que não conhecem a sintaxe AHK
Joakim Söderberg

1
Funciona apenas parcialmente no meu Windows 7 com um monitor horizontal e um monitor vertical. Perfeitamente no monitor horizontal, mas na vertical parece tirar a altura do monitor horizontal.
hardmooth 5/08/16

21

WindowSpace fornece essa funcionalidade. Para fazer o que você está pedindo:

  • Vá para a guia "Movendo e redimensionando" em Settings
  • Para "Margem superior:", escolha "Mover para o lado superior"
  • Para "Borda inferior:", escolha "Mover para o lado inferior"

Captura de tela:

captura de tela


9
A chave de licença de US $ 25 é necessária em algum momento?
Ruffin

2
Eu prefiro o AquaSnap (é grátis ou custa 9 dólares para vários monitores): youtube.com/watch?v=bOVOEebpiWc Mas desde o Windows 10, não é mais necessário, porque os recursos mais importantes fazem parte do sistema operacional agora.
mgutt

1
O AquaSnap agora custa US $ 18 (se você usar vários monitores) e faz muitas coisas que o Win10 não faz, como encaixe superior / inferior e ladrilhos. Muito legal.
Isherwood

9

Atualmente, não tenho uma máquina com o Windows 7 na minha frente, mas desde o Windows 95 (ou mesmo antes, possivelmente), existe a opção de colocar janelas na horizontal. Minimize tudo, exceto as duas janelas que você deseja exibir na parte superior e inferior, clique com o botão direito do mouse na barra de tarefas e selecione Lado a lado janelas horizontalmente. Ele dimensionará cada janela para ocupar metade da área vertical da tela. Isso não é útil em uma única janela e, como outra resposta afirmou, não há atalho de teclado, mas às vezes acho útil.

Correção: no Windows 7, isso é chamado "Mostrar janelas empilhadas"


8

Semelhante ao northben, também escrevi um script AutoHotKey, embora um pouco diferente, por isso achei que merecia sua própria resposta. Esse script deve funcionar com qualquer número de monitores ou orientações do monitor.

Os comandos estão vinculados a Windows+ Ctrl+ Upe, em Downvez de Shiftnão interferirem no Windows+ Shift+ existente Up.

Isso funciona de maneira semelhante ao snap à altura da tela cheia ( Windows+ Shift+ Up), pois a janela mantém sua posição e largura horizontais. Isso pode ser facilmente alterado para funcionar de maneira semelhante à metade esquerda ou à direita meia snap ( Windows+ Leftou Right) descomentando a ; WinMaximize, Alinha. Se você deseja manter o comportamento padrão, mas às vezes usa o comportamento de meio snap, basta maximizar a janela antes de snap.

Funciona com Windows 7 de 64 bits e AutoHotKey v1.1.14.03.

;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
  r := params[1]
  for index, param in params
    if (param < r)
      r := param
  return r
}
Max(params*)
{
  r := params[1]
  for index, param in params
    if (param > r)
      r := param
  return r
}

;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width.  To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
  ; WinMaximize, A
  WinGetPos, x, y, w, h, a, , ,
  SysGet , Count, MonitorCount
  refArea := 0
  Loop, %count%
  {
    SysGet, m, MonitorWorkArea, %A_Index%
    xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
    yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
    area := xo * yo
    if (area > refArea)
    {
      monTop := mTop
      monBottom := mBottom
      refArea := area
    }
  }

  ; If the refArea is still equal to 0, the window does
  ; not overlap with any monitors. Wat?
  if (refArea > 0)
  {
    if (direction = 1)
      newY := monTop
    Else
      newY := (monBottom - monTop) / 2 + monTop
    WinMove , a, , x, newY, w, (monBottom - monTop) / 2
  }
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)

1
Eu gostaria que isso tivesse funcionado. Eu estou recebendo The following variable name contains an illegal character: "params*". Por enquanto estou usando o script de @ northben
bits

Obrigado por este script. Super útil. Descobri que ele não carregaria até remover o espaço entre o nome da função UpDownSnap e os parênteses.
Jason Dufair

Talvez isso também tenha sido um problema acima. Curiosamente, meu próprio script não tem espaço; Não sei bem como chegou lá. Eu removi, obrigado.
Jason Clement

Funciona bem no Windows 8.1 :-)
Gabriel Hautclocq

Obrigado @JasonClement pela sua solução. Corrigi um bug na sua solução e postei como outra resposta.
Zee

7

O melhor programa que já usei que realiza exatamente isso e mais é o WinSplit Revolution: http://winsplit-revolution.com/

Eu recomendo, pois é extremamente simples de usar e até funciona bem com vários monitores.

Vídeo de demonstração: http://winsplit-revolution.com/screenshots/videos-demos

Este aplicativo é gratuito e lançado sob a Creative Commons Attribution-Non Commercial-No Derivative Works 3.0.

EDITAR:

Parece que o WinSplit não está mais disponível, o site foi ocupado pela Digital Creations AS, que possui sua própria versão desse tipo de software e não é mais gratuito


O software ainda está disponível na softonic e ainda faz maravilhas no Windows 10 a partir da Atualização 1809. pt.softonic.com/download/winsplit-revolution/windows
JoeB

5

coloque suas janelas exatamente como você deseja -> clique com o botão direito na barra de tarefas -> "mostrar janelas empilhadas" -> lucro!


4

Como Rain sugeriu aqui , o PowerResizer funciona bem. Não é muito personalizável - você não pode alterar os atalhos do teclado, mas é pelo menos de código aberto. Como observa JoeB, você pode pressioná-los enquanto arrasta uma janela: W para mover para cima e Z para mover para baixo. A é mover para a esquerda, S para mover para a direita. Ou simplesmente arraste a janela para a borda. Pressionar 1,2,3 e 4 enquanto arrasta fará um quarto de snap para um canto. Estou feliz com isso, experimente.


Eu apenas tentei o WindowSpace; se você não se importa em pagar US $ 25, é uma solução muito melhor.
leetNightshade

1
Há documentação! readme.txt na pasta de instalação dos arquivos de programa. Sem mencionar que ele faz exatamente o que eu queria, que era meio snap vertical. 1/4 snaps são um bônus extra!
scaryman

3

Se você possui uma placa de vídeo AMD, pode usar o "Hydravision".

(1) Abra o Catalyst Control Center (2) Em "Desktop e monitores", clique em "Mais ..." (3) Em "Hydravision", clique em "HydraGrid" (4) Marque "Ativar HydraGrid" (5) Clique em "Editar HydraGrid "e coloque as linhas de grade onde desejar, por exemplo, na metade do monitor de retrato (6)

Agora, quando você estiver trabalhando com janelas, clique com o botão direito do mouse na barra de título e selecione "Anexar à grade", depois arraste-o de um lugar para outro e ele se encaixará na grade.

Eu corro monitores 3x1 de 24 "no modo retrato com essa configuração e é a maneira mais rápida que encontrei de encaixar as janelas na metade superior e inferior de cada monitor.


1
Cometi o erro de instalar o Catalyst Control Center para experimentar o Hydravision. Esse programa é um porco e estou procurando outra solução.
dana

2

Confira o AquaSnap . Você pode arrastar o mouse conforme o esperado, use Ctrl + Mouse para redimensionar duas janelas lado a lado ao mesmo tempo, além de vários outros recursos.

Veja incríveis recursos de encaixe

Você também pode usar uma grande variedade de teclas de atalho. Este programa substitui alguns padrões do Windows que você já está acostumado a usar, além de alterar Win + Up e Win + Down para dock para cima / baixo.

Exemplos de teclas de atalho

O WindowSpace funciona, mas não é tão bom assim, e pode demorar um pouco quando você pressiona Aplicar. Comparativamente, a versão gratuita / de avaliação do Aquasnap Pro é uma experiência muito tranquila.


1

Existem muitas opções fornecidas pelo Windows, incluindo EMPILHAMENTO, LADO A LADO e CASCADING. Para isso, clique com o botão direito do mouse em uma área vazia na barra de tarefas (geralmente na parte inferior da tela) e selecione. Sim, não é um atalho de teclado, mas é bem próximo.

Não confie em mim, entenda diretamente da boca do cavalo, a Microsoft aqui .

Além disso, o site tem muitos outros bons petiscos - muitos que você conhece, alguns podem ser novos. Espero que isto ajude.


1

Existe uma maneira livre de terceiros de obter essa funcionalidade, mas o AFAIK:

  • Requer algum uso do mouse
  • Funciona apenas para duas janelas.

A receita é:

  1. Encaixe as janelas lado a lado da maneira usual.
  2. Pressione Win+Downpara fazer com que uma das janelas ocupe um quarto da tela
  3. Selecione a outra janela e pressione Win+Uppara que a outra janela fique no quarto oposto da tela
  4. Use o mouse para agarrar a borda da janela e redimensioná-la para a borda da tela, maximizando assim a largura de cada janela sem alterar suas alturas.

Ótima dica, mas é um monte de trabalho acertar cada vez.
11101101b

1

Corrigido um erro na solução de Jason Clement. Quando a janela se encaixa verticalmente, anteriormente também não ocupava a largura do monitor. Ele permaneceria na largura atual da janela, mas se ajustaria a 1/2 monitor verticalmente. Com essa correção, ele se ajusta a 50% da altura vertical para cima ou para baixo e a 100% da largura horizontal do monitor.

Além disso, para quem pode não conhecer AHK ...

  1. Baixar AutoHotKey
  2. Crie um arquivo de texto no bloco de notas. Cole o código nele. Salve-o com a extensão correta para o AutoHotKey, por exemplo "VerticalSnap.ahk"
  3. Clique com o botão direito do mouse no arquivo do Explorer, escolha "Compilar script"
  4. A compilação deve criar um arquivo "VerticalSnap.exe" nesse diretório.
  5. Abra run.exe, digite "shell: startup" e pressione Enter.
  6. Uma nova janela do Explorer deve abrir para a pasta Inicialização.
  7. Copie / cole o arquivo .exe nesta pasta de inicialização.
  8. Na próxima inicialização, esse script deve estar em execução. Você pode usar CRTL + WINDOWS + UPARROW ou + DOWNARROW para encaixar na parte superior inferior do monitor. Observe que a janela não deve ser maximizada para que isso funcione.

Espero que ajude, e obrigado Jason!

;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
  r := params[1]
  for index, param in params
    if (param < r)
      r := param
  return r
}
Max(params*)
{
  r := params[1]
  for index, param in params
    if (param > r)
      r := param
  return r
}

;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width.  To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
  ; WinMaximize, A
  WinGetPos, x, y, w, h, a, , ,
  SysGet , Count, MonitorCount
  refArea := 0
  Loop, %count%
  {
    SysGet, m, MonitorWorkArea, %A_Index%
    xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
    yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
    area := xo * yo
    if (area > refArea)
    {
      monTop := mTop
      monBottom := mBottom
      monLeft := mLeft
      monRight := mRight
      refArea := area
    }
  }

  ; If the refArea is still equal to 0, the window does
  ; not overlap with any monitors. Wat?
  if (refArea > 0)
  {
    if (direction = 1)
      newY := monTop
    Else
      newY := (monBottom - monTop) / 2 + monTop
    WinMove , a, , monLeft, newY, (monRight - monLeft), (monBottom - monTop) / 2
  }
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)

0

Uma opção que eu achei útil é subdividir seus monitores em meios virtuais usando o DisplayFusion . Você configura isso fazendo o seguinte:

  • Clique com o botão direito do mouse no ícone DisplayFusion localizado na sua área de notificação e vá para Monitor Configuration.
  • Selecione o monitor que você deseja configurar.
  • Adicione um vertical splitao monitor. (Você pode brincar com isso e dividir seus monitores ainda mais.)

Com isso ativado, você poderá usar as teclas Windows+ Arrowpara navegar na janela e maximizar a nova área dividida verticalmente do seu monitor. Estou prestes a rodar meus dois monitores 1920x1200 no modo retrato quando meus 30 "entrarem e janelas com abertura vertical serão uma necessidade.


0

Eu precisava dividir repetidamente as duas janelas do navegador superior e inferior no Windows 10 com uma configuração de vários monitores, com muitas outras janelas já abertas. Poderia fazê-lo manualmente, mas queria uma solução melhor.

Eu achei a extensão "Redimensionamento de guia - Layouts de tela dividida" da extensão do Chrome que tornou isso super fácil para mim.

Basta abrir uma nova janela do Chrome, clique no ícone da extensão Redimensionar guia, escolha a opção 2x1. Bom e fácil agora.


1
Parece que a pessoa que fez a pergunta queria uma solução que funcione para todos os programas, não apenas para o Chrome. Você tem algo que faz isso?
Ben N

0

Se você usa um monitor Dell, pode instalar o Dell Display Manager, que possui opções para dividir a tela em uma grade.

Em seguida, você pode arrastar a janela para uma célula enquanto mantém pressionada a tecla Shift.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.