atajo de teclado en Windows 7 para centrar la ventana

18

Encuentro que la flecha Win-left y la flecha Win-right son realmente útiles en Windows 7 para hacer que una ventana ocupe el 50% del lado izquierdo o derecho de la pantalla, respectivamente. Sin embargo, ¿hay algún comando que haga que una ventana ocupe el 50% de la pantalla y se centre? Incluso si no ajusta el tamaño de la ventana, ¿hay un atajo de teclado para hacer que una ventana se centre vertical y horizontalmente? Gracias.

Sarah Vessels
fuente

Respuestas:

3

Deberías consultar WinSplit Revolution ; tiene lo que necesitas y es personalizable.

texto alternativo

Tamara Wijsman
fuente
Parece que con 3 clics del botón central en la ventana de WinSplit, mi ventana enfocada se estira y llena toda la altura del monitor, que está bien, y se centra horizontalmente. :)
Sarah Vessels
13

Las teclas de flecha de Windows + son bastante útiles aquí.

  • (Windows)+ ← (Left) y + → (Right) recorren el 50% de la pantalla hacia la izquierda o hacia la derecha y restauran la ventana a su tamaño y posición originales.
  • + ↑ (Up)maximiza la ventana.
  • + ↓ (Down) restaura la ventana si está maximizada y la minimiza de lo contrario.
wbeard52
fuente
2
Eso no pareció hacerlo por mí. Parece que minimiza mi ventana o la restaura si la ventana está maximizada.
Sarah Vessels
2
En mi máquina, monitor dual, puedo hacer clic en Win-Left e irá al 50% a la izquierda en esa pantalla. Si sigo haciendo clic en Win-Left, irá al 50% a la derecha en la otra pantalla, luego se centrará y finalmente a la izquierda en la otra pantalla. Win-Right hace lo contrario
wbeard52
1
Win-Down es simplemente incorrecto. Restaura una ventana de maximizada o la minimiza (si ya está restaurada). No hará nada centrado con la ventana.
Joey
3
@ wbeard52: acabo de probar Win-Left repetidamente y pasó por el 50% en el lado izquierdo de la pantalla, el 50% en el lado derecho de la pantalla y cómo estaba originalmente mi ventana (no centrada, pequeña).
Sarah Vessels
2
Al presionar repetidamente Win-Left o Win-Right simplemente se pasa la ventana a la izquierda / derecha al 50% de los monitores disponibles, luego se vuelve a colocar donde estaba antes. No centra la ventana de ninguna manera.
dgw
13

Esto no es exactamente para centrar, pero le permite mover la ventana de izquierda a derecha (y arriba y abajo) fácilmente.

  1. Enfoca una ventana.
  2. Presione Alt+ Space.
  3. Presione M(para "Mover").
  4. Use las teclas de flecha para mover la ventana exactamente donde la quiere.
  5. Presione Entercuando haya terminado.
ddinchev
fuente
1
Esta solución no requiere la instalación de software adicional. Puede que no sea la solución exacta, pero creo que es suficiente para hacer el trabajo
afuzzyllama
Esto solo funciona si una ventana no está maximizada.
TylerH
@ TylerH: eso es cierto. Sin embargo, solo requiere presionar windows + right (para colocar la ventana en la posición derecha del 50%), y luego seguir las instrucciones en esta respuesta para moverla a la izquierda.
Rasmus Larsen
5

Sugeriría usar AutoHotkey .
Ya se proporcionó un script de ejemplo que hace exactamente lo que solicitó en una respuesta a otra pregunta .
Aquí está el código del 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
}

Hice un pequeño ajuste para que la parte inferior de la ventana no quede debajo de la barra de tareas, y cambié windowWidthde 0.7 a 0.5.

Editar : ahora trabaja con varios monitores y usa el área de trabajo para los valores superior e inferior.

En una nota al margen, WinSplit Revolution ha sido descontinuado y reemplazado por una aplicación paga llamada MaxTo.
Además de ser muy potente y cubrir muchos más casos de uso, AutoHotkey también es gratuito y de código abierto.

vctls
fuente
1
Casi genial ... Excepto por el único problema grave. Con múltiples monitores extendidos, esto siempre mueve una ventana desde un monitor secundario al principal. ¿Alguna idea sobre cómo solucionar este problema? WinMove no parece tener ningún parámetro adicional.
DKroot
@DKroot Tendré que probar con una segunda pantalla. Solo he estado usando esto en un solo ultra ancho. Esto es lo que dice el documento en WinMove: «Se permiten valores negativos para las coordenadas xey para admitir sistemas de monitores múltiples y permitir que una ventana se mueva completamente fuera de la pantalla». Hay ejemplos de scripts de monitores múltiples en el foro, pero se vuelve más complicado: autohotkey.com/board/topic/…
vctls
¡Muchas gracias por el enlace! Pude combinar tu script y el script vinculado en uno que funcionaba perfectamente. (El script vinculado no cambia de tamaño, por lo tanto, no funciona, por ejemplo, en ventanas maximizadas). El guión es demasiado largo para ser incluido en los comentarios. ¿Te importa que lo publique como una respuesta separada?
DKroot
Otra nota de prueba en su script: curiosamente, en una configuración con 3 monitores, por ejemplo, # 1 main, # 2 y # 3 funciona bien en # 1 y # 3, pero mueve las ventanas de # 2 a # 1.
DKroot
1
Huh, eso es raro. Lo actualicé para que funcione en varios monitores. Traté de hacerlo lo más breve y temático posible, pero es posible que desee ir a la Edición Deluxe como las del foro;)
vctls