Questão Possível "snap" top / bottom em vez de apenas esquerda / direita no Windows 7?


No Windows 7, sei que você pode fazer janelas + Esquerda colocar uma janela na metade esquerda da tela. Existe um recurso que fará top e bottom?


105


origem


@RockPaperLizard Você também deve lembrar que o Windows 7 é realmente antigo e é o único sistema operacional que possui um recurso de snap nativo, até o momento. Eu tenho que encontrar um script de tipo "extensão" de terceiros para fazer isso no Mac, por exemplo. Além disso, o Windows 10 possui Snap para todas as direções, incluindo cantos! Em outras palavras, acho que a equipe do Windows realmente tenta do lado da 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. Estavam até dispostos a explorar novos territórios, embora sem sucesso comercial, com Microsoft Bob. Infelizmente, seus sucessos são marcados por muitos fracassos, sendo os mais notáveis Windows 8. Não sei se o fracasso desse projeto foi a equipe da UX ou a recusa da gerência em ouvi-los. - RockPaperLizard


Respostas:


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

  • esquerda meio estalar (janelas + esquerda)
  • meio estalar direito (janelas + certo)
  • altura da tela cheia snap (janelas + mudança + acima)
  • pressão maximizada (janelas + acima)
  • "un-snap" (janelas + baixa)
  • encaixar no próximo monitor / display (janelas + mudança + (esquerda ou certo))

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

  • minimizar todos (janelas + m)
  • minimizar todas as janelas, exceto as ativas (janelas + Casa)
  • Aero peek (ver Desktop, todas as janelas tornam-se transparentes) (janelas + espaço)

68



Legal, eu estava tentando descobrir como manter a posição vertical fixa, mas permitir o movimento horizontal sem usar o snap à esquerda / direita da tela e ter que reajustar a largura da janela, e o snap à altura da tela inteira faz exatamente o que eu queria. - JAB
Ah, acabei de descobrir que clicar duas vezes na borda superior da barra de título (ou seja, quando a seta vertical de ponta dupla é exibida) também faz o snap da altura da tela. - JAB
No Windows 10 existe agora outra opção: depois de encaixar à esquerda ou à direita, você pode pressionar up ou down, por exemplo. para encaixar no canto superior esquerdo. Não o que o OP queria, mas talvez fosse útil para os outros. - Andre


Eu uso os seguintes passos para conseguir isso:

  1. janelas + D (para minimizar todas as janelas)
  2. então use o meu mouse para colocar as janelas que eu quero empilhar no colocação geral em cada monitor (não se incomode em redimensioná-los)
  3. em seguida, clique com o botão direito na barra de tarefas e selecione "Mostrar janelas empilhadas" a partir do menu de contexto, em seguida, restaurar qualquer outra janela que eu quero

Nota: Você deve minimizar as janelas que não deseja empilhar. Isto é o que o passo 1 pretende fazer.


49



Isso é realmente útil. Eu sei disso desde o win 98, mas eu nunca o usei no win 7, porque no win XP e versões anteriores você pode selecionar os botões da barra de tarefas para escolher quais janelas empilhar, mas isso não funciona mais no Windows 7. a opção vai empilhar todas as janelas na tela. Blog technet: você sabia: mostrar janelas empilhadas, em cascata ou lado a lado - phuclv
Isso é útil, mas empilha 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


Eu escrevi um pequeno script AutoHotKey para tirar as janelas de cima e de baixo porque eu também estava frustrado com isso. Você pode baixá-lo do 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

22



Ele funciona, mas também abre a tela inicial no Windows 8.1. Como remediar esta questão? - Gabriel Hautclocq
Isso é exatamente o que eu esperava encontrar. Obrigado! Eu notei que o comando não altera a largura da janela. Qualquer maneira de ir automaticamente para a largura da tela cheia quando ela se encaixa? - Alex P. Miller
Isso não funciona para mim no Windows 10. Eu tenho 3 monitores, que de 2 estão no modo vertical. Você está falando explicitamente sobre duas áreas de trabalho, não tendo certeza se esta é a causa. Além disso, você deve mencionar qual combinação de teclas você deve pressionar nesta resposta para pessoas que não conhecem a sintaxe do AHK. - Joakim Söderberg
Ele só funciona parcialmente no meu Windows 7 com um monitor horizontal e um vertical. Perfeitamente no monitor horizontal, mas na vertical parece ter a altura da horizontal. - hardmooth


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

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

Captura de tela:

screenshot


20



A chave de licença de US $ 25 é necessária em algum momento? - ruffin
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 são parte do sistema operacional, agora. - mgutt
O AquaSnap agora custa US $ 18 (se você usa vários monitores) e faz muitas coisas que o Win10 não faz, como snap / ladrilho superior / inferior. Muito legal. - isherwood


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

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


8





O melhor programa que já usei para realizar 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

Esta aplicação é freeware e liberada sob Creative Commons Attribution-Non Commercial-No Derivative Works 3.0.

EDITAR:

Parece WinSplit não está mais disponível, o site foi assumido pela Digital Creations AS, que tem sua própria versão deste tipo de software, e é não mais livre


7





Similar ao northben, eu também escrevi um script AutoHotKey, embora um pouco diferente, então eu achei que ele merecia a sua própria resposta. Esse script deve funcionar com qualquer número de monitores ou orientações de monitor.

Os comandos são obrigados a janelas + Ctrl + Acima e Baixa ao invés de Mudança de modo a não interferir com o existente janelas + Mudança + Acima.

Isso funciona de maneira semelhante ao snap à altura da tela inteira (janelas + Mudança + Acima) em que a janela mantém a sua posição horizontal e largura. Isso pode ser facilmente alterado para funcionar de maneira semelhante à metade esquerda ou metade direita (janelas + Esquerda ou Certo) descomentando o ; WinMaximize, A linha. Se você quiser manter o comportamento padrão, mas às vezes use o comportamento de meia pressão, apenas maximize a janela antes de encaixar.

Funciona com o 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)

7



Eu gostaria que isso funcionasse. estou obtendo The following variable name contains an illegal character: "params*". Por enquanto estou usando o script do @ northben - bits
Obrigado por este roteiro. Super útil. Descobri que ele não carregaria até que eu removesse o espaço entre o nome da função UpDownSnap e os parênteses. - Jason Dufair
Talvez isso também fosse problema de bits acima. Curiosamente, meu próprio script não tem o espaço; Não tenho certeza de como chegou lá. Eu removi, obrigado. - Jason Clement
Funciona bem no Windows 8.1 :-) - Gabriel Hautclocq
Obrigado @JasonClement pela sua solução. Corrigi um erro na sua solução e publiquei como outra resposta. - Zee


coloque suas janelas como quiser -> clique com o botão direito na barra de tarefas -> "show windows stacked" -> profit!


5





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


4



Eu apenas tentei o WindowSpace; Se você não se importa de pagar US $ 25, é uma solução muito melhor. - leetNightshade
Há documentação! readme.txt na pasta de instalação dos arquivos do programa. Sem mencionar que faz exatamente o que eu queria, que era meio estalo vertical. 1/4 snaps são um bônus extra! - scaryman