atalho de teclado no Windows 7 para centralizar a janela

18

Acho as setas Win-esquerda e Win-direita realmente úteis no Windows 7 para fazer com que uma janela ocupe 50% do lado esquerdo ou direito da tela, respectivamente. No entanto, existe algum comando que fará com que uma janela ocupe 50% da tela e seja centralizada? Mesmo que não ajuste o tamanho da janela, existe um atalho de teclado para fazer com que a janela se centralize vertical e horizontalmente? Obrigado.

Sarah Vessels
fonte

Respostas:

3

Você deve conferir o WinSplit Revolution ; tem o que você precisa e é personalizável.

texto alternativo

Tamara Wijsman
fonte
Parece que com 3 cliques do botão do meio na janela do WinSplit, minha janela focada se estende e preenche toda a altura do monitor, o que é bom e fica centralizada horizontalmente. :)
Sarah Vessels
13

As teclas de seta do Windows + são bastante úteis aqui.

  • (Windows)+ ← (Left) e + → (Right) percorre 50% da tela para a esquerda ou direita e restaura a janela para seu tamanho e posição originais.
  • + ↑ (Up)maximiza a janela.
  • + ↓ (Down) restaura a janela se estiver maximizada e a minimiza caso contrário.
wbeard52
fonte
2
Isso não pareceu fazer isso por mim. Parece que ele minimiza minha janela ou a restaura se a janela estiver maximizada.
Sarah Vessels
2
Na minha máquina, monitor duplo, posso clicar em Win-Left e ele irá para a esquerda 50% nessa tela. Se eu continuar clicando em Win-Left, ele irá para a direita 50% na outra tela, o próximo será centralizado e finalmente deixado na outra tela. Win-direito faz o oposto
wbeard52
1
Win-Down está completamente errado. Ele restaura uma janela de maximizada ou a minimiza (se já estiver restaurada). Não fará nada central com a janela.
Joey
3
@ wbeard52: Eu apenas tentei Win-Left repetidamente e ele percorreu 50% no lado esquerdo da tela, 50% no lado direito da tela e como minha janela era originalmente (não centralizada, pequena).
Sarah Vessels
2
Pressionar repetidamente Win-Left ou Win-Right simplesmente percorre a colocação da janela à esquerda / direita em 50% dos monitores disponíveis e depois a coloca de volta onde estava antes. Não centraliza a janela de nenhuma maneira.
Dgw 14/05
13

Isso não é exatamente para centralizar, mas permite mover a janela para a esquerda e direita (e para cima e para baixo) facilmente.

  1. Focar uma janela.
  2. Pressione Alt+ Space.
  3. Pressione M(para “Mover”).
  4. Use as setas do teclado para mover a janela exatamente para onde deseja.
  5. Pressione Enterquando terminar.
ddinchev
fonte
1
Esta solução não requer a instalação de software adicional. Pode não ser a solução exata, mas eu acho que é o suficiente para fazer o trabalho
afuzzyllama
Isso funciona apenas se uma janela não estiver maximizada.
TylerH 27/02
@ TylerH: isso é verdade. No entanto, ele só exige que você janelas de imprensa + Direita (para a janela lugar em 50% posição correta), e , em seguida, siga as instruções nesta resposta para movê-lo à esquerda.
Rasmus Larsen
5

Eu sugeriria o uso do AutoHotkey .
Um script de exemplo que faz exatamente o que você pediu já foi fornecido em resposta a outra pergunta .
Aqui está o código do script:

#!Up::CenterActiveWindow() ; if win+alt+↑ is pressed

CenterActiveWindow()
{
    ; Get the window handle from de active window.
    winHandle := WinExist("A")

    VarSetCapacity(monitorInfo, 40)
    NumPut(40, monitorInfo)

    ; Get the current monitor from the active window handle.
    monitorHandle := DllCall("MonitorFromWindow", "uint", winHandle, "uint", 0x2)
    DllCall("GetMonitorInfo", "uint", monitorHandle, "uint", &monitorInfo) 

    ; Get WorkArea bounding coordinates of the current monitor.
    A_Left   := NumGet(monitorInfo, 20, "Int")
    A_Top    := NumGet(monitorInfo, 24, "Int")
    A_Right  := NumGet(monitorInfo, 28, "Int")
    A_Bottom := NumGet(monitorInfo, 32, "Int")

    ; Calculate window coordinates.
    winW := (A_Right - A_Left) * 0.5 ; Change the factor here to your desired width.
    winH := A_Bottom
    winX := A_Left + (winW / 2)
    winY := A_Top

    WinMove, A,, winX, winY, winW, winH
}

Fiz um pequeno ajuste para que a parte inferior da janela não fique embaixo da barra de tarefas e mudei windowWidthde 0,7 para 0,5.

Editar : agora trabalhando com vários monitores e usa a área de trabalho para valores superiores e inferiores.

Além disso, o WinSplit Revolution foi descontinuado e substituído por um aplicativo pago chamado MaxTo.
Além de ser muito poderoso e cobrir muito mais casos de uso, o AutoHotkey também é gratuito e de código aberto.

vctls
fonte
1
Quase ótimo ... Exceto pelo problema sério. Com vários monitores estendidos, isso sempre move uma janela de um monitor secundário para o principal. Alguma ideia de como consertar isso? O WinMove não parece ter nenhum parâmetro extra.
DKroot 27/08/19
@DKroot Vou ter que tentar com uma segunda tela. Eu só tenho usado isso em um único ultra amplo. Aqui está o que o documento diz no WinMove: "Valores negativos são permitidos para as coordenadas xey para dar suporte a sistemas com vários monitores e para permitir que uma janela seja movida totalmente para fora da tela". Existem exemplos de scripts para vários monitores no fórum, mas fica mais complicado: autohotkey.com/board/topic/…
vctls
Muito obrigado pelo link! Consegui combinar seu script e o script vinculado em um funcionando perfeitamente. (O script vinculado não é redimensionado e, portanto, não funciona, por exemplo, em janelas maximizadas). O script é muito longo para ser incluído nos comentários. Você se importa de eu postá-lo como uma resposta separada?
DKroot 28/08/19
Outra nota de teste no seu script: curiosamente, em uma configuração com 3 monitores, por exemplo, nº 1 principal, nº 2 e nº 3, funciona bem nos nºs 1 e 3, mas move as janelas do nº 2 para o nº 1.
DKroot 28/08/19
1
Isso é estranho. Eu o atualizei para fazê-lo funcionar em vários monitores. Eu tentei mantê-lo o mais curto e no tópico possível, mas você pode querer ir para o Deluxe Edition como os do fórum;)
vctls