raccourci clavier dans Windows 7 pour centrer la fenêtre

18

Je trouve que la flèche Win-gauche et la flèche Win-droite sont vraiment utiles dans Windows 7 pour faire en sorte qu'une fenêtre occupe 50% du côté gauche ou droit de l'écran, respectivement. Cependant, existe-t-il une commande qui fera qu'une fenêtre occupe 50% de l'écran et soit centrée? Même s'il ne règle pas la taille de la fenêtre, existe-t-il un raccourci clavier pour faire en sorte qu'une fenêtre se centre verticalement et horizontalement? Merci.

Sarah Vessels
la source

Réponses:

3

Vous devriez vérifier WinSplit Revolution ; il a ce dont vous avez besoin et est personnalisable.

texte alternatif

Tamara Wijsman
la source
On dirait qu'avec 3 clics sur le bouton du milieu dans la fenêtre de WinSplit, ma fenêtre focalisée s'étire et remplit toute la hauteur du moniteur, ce qui est bien, et est centrée horizontalement. :)
Sarah Vessels
13

Les touches fléchées Windows + sont très utiles ici.

  • (Windows)+ ← (Left) et + vous → (Right) permettent de parcourir 50% de l'écran vers la gauche ou la droite et de restaurer la taille et la position d'origine de la fenêtre.
  • + ↑ (Up)maximise la fenêtre.
  • + ↓ (Down) restaure la fenêtre si elle est agrandie et la minimise sinon.
wbeard52
la source
2
Cela ne semblait pas le faire pour moi. Il semble que cela minimise ma fenêtre ou la restaure si la fenêtre est agrandie.
Sarah Vessels
2
Sur ma machine, double moniteur, je peux cliquer sur Win-Left et il ira à gauche à 50% sur cet écran. Si je continue à cliquer sur Win-Left, il ira à droite de 50% sur l'autre écran, puis au centre et enfin à gauche sur l'autre écran. Win-Right fait le contraire
wbeard52
1
Win-Down est tout simplement faux. Il restaure une fenêtre agrandie ou la minimise (si elle est déjà restaurée). Il ne fera rien de centre-y avec la fenêtre.
Joey
3
@ wbeard52: J'ai juste essayé Win-Left à plusieurs reprises et il a parcouru 50% du côté gauche de l'écran, 50% du côté droit de l'écran et comment ma fenêtre était à l'origine (non centrée, petite).
Sarah Vessels
2
Appuyer plusieurs fois sur Win-Left ou Win-Right fait simplement défiler la fenêtre à gauche / à droite de 50% des moniteurs disponibles, puis la remet là où elle était auparavant. Il ne centre en aucune façon la fenêtre.
dgw
13

Ce n'est pas exactement pour le centrage, mais vous permet de déplacer facilement la fenêtre de gauche à droite (et de haut en bas).

  1. Concentrez une fenêtre.
  2. Appuyez sur Alt+ Space.
  3. Appuyez sur M(pour «Déplacer»).
  4. Utilisez les touches fléchées pour déplacer la fenêtre exactement où vous le souhaitez.
  5. Appuyez une Enterfois terminé.
ddinchev
la source
1
Cette solution ne nécessite aucun logiciel supplémentaire à installer. Ce n'est peut-être pas la solution exacte, mais je pense que cela suffit pour faire le travail
afuzzyllama
Cela ne fonctionne que si une fenêtre n'est pas agrandie.
TylerH
@TylerH: c'est vrai. Cependant, il vous suffit d'appuyer sur windows + droite (pour placer la fenêtre à 50% à droite), puis suivez les instructions de cette réponse pour la déplacer vers la gauche.
Rasmus Larsen
5

Je suggère d'utiliser AutoHotkey .
Un exemple de script qui fait exactement ce que vous avez demandé a déjà été fourni dans une réponse à une autre question .
Voici le code du 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
}

J'ai fait un léger ajustement pour que le bas de la fenêtre ne passe pas sous la barre des tâches, et j'ai changé la valeur windowWidthde 0,7 à 0,5.

Modifier : fonctionne maintenant avec plusieurs moniteurs et utilise la zone de travail pour les valeurs supérieures et inférieures.

Par ailleurs, WinSplit Revolution a été abandonné et remplacé par une application payante appelée MaxTo.
En plus d'être très puissant et couvrant beaucoup plus de cas d'utilisation, AutoHotkey est également gratuit et open source.

vctls
la source
1
Presque super ... Sauf pour le seul problème grave. Avec plusieurs moniteurs étendus, cela déplace toujours une fenêtre d'un moniteur secondaire vers le moniteur principal. Des idées pour résoudre le problème? WinMove ne semble pas avoir de paramètres supplémentaires.
DKroot
@DKroot Je vais devoir essayer avec un deuxième écran. Je ne l'utilise que sur un seul ultra large. Voici ce que dit le doc sur WinMove: «Les valeurs négatives sont autorisées pour les coordonnées x et y pour prendre en charge les systèmes multi-moniteurs et pour permettre à une fenêtre d'être entièrement déplacée hors écran.» Il existe des exemples de scripts multi-moniteurs sur le forum, mais ça devient plus compliqué: autohotkey.com/board/topic/…
vctls
Merci beaucoup pour le lien! J'ai pu combiner votre script et le script lié en un seul fonctionnant parfaitement. (Le script lié ne redimensionne pas et ne fonctionne donc pas, par exemple sur des fenêtres maximisées). Le script est trop long pour être inclus dans les commentaires. Cela vous dérange-t-il que je le poste comme réponse distincte?
DKroot
Une autre note de test sur votre script: intéressant, dans une configuration avec 3 moniteurs, par exemple # 1 principal, # 2 et # 3, cela fonctionne très bien sur # 1 et # 3, mais déplace les fenêtres de # 2 à # 1.
DKroot
1
C'est bizarre. Je l'ai mis à jour pour le faire fonctionner sur plusieurs moniteurs. J'ai essayé de le garder aussi court et sur le sujet que possible, mais vous voudrez peut-être opter pour l'édition Deluxe comme celles du forum;)
vctls