Tastaturkürzel in Windows 7, um das Fenster zu zentrieren

18

Ich finde den Windows-Pfeil nach links und den Windows-Pfeil nach rechts in Windows 7 sehr nützlich, damit ein Fenster 50% der linken bzw. rechten Seite des Bildschirms einnimmt. Gibt es jedoch einen Befehl, der bewirkt, dass ein Fenster 50% des Bildschirms einnimmt und zentriert wird? Gibt es eine Tastenkombination, mit der ein Fenster vertikal und horizontal zentriert werden kann, auch wenn die Größe des Fensters nicht angepasst wird? Vielen Dank.

Sarah Vessels
quelle

Antworten:

3

Sie sollten WinSplit Revolution ausprobieren . es hat was Sie brauchen und ist anpassbar.

Alt-Text

Tamara Wijsman
quelle
Sieht so aus, als würde mein fokussiertes Fenster mit 3 Klicks auf die mittlere Schaltfläche in WinSplits Fenster gestreckt und die gesamte Höhe des Monitors ausfüllen, was in Ordnung ist, und horizontal zentriert. :)
Sarah Vessels
13

Die Windows + Pfeiltasten sind hier sehr nützlich.

  • (Windows)Mit + ← (Left) und + → (Right) wechseln Sie zu 50% nach links oder rechts und stellen die ursprüngliche Größe und Position des Fensters wieder her.
  • + ↑ (Up)maximiert das Fenster.
  • + ↓ (Down) stellt das Fenster wieder her, wenn es maximiert ist, und minimiert es ansonsten.
wbeard52
quelle
2
Das schien es nicht für mich zu tun. Es sieht so aus, als würde mein Fenster minimiert oder wiederhergestellt, wenn das Fenster maximiert ist.
Sarah Vessels am
2
Auf meinem Computer mit zwei Bildschirmen kann ich auf Win-Left klicken und es wird auf diesem Bildschirm um 50% nach links verschoben. Wenn ich weiter auf Win-Left klicke, wird es auf dem anderen Bildschirm zu 50% nach rechts gehen, als nächstes wird es zentriert und schließlich auf dem anderen Bildschirm nach links. Win-Right macht das Gegenteil
wbeard52
1
Win-Down ist einfach falsch. Es wird entweder ein maximiertes Fenster wiederhergestellt oder es wird minimiert (falls es bereits wiederhergestellt wurde). Es wird nichts in der Mitte des Fensters tun.
Joey
3
@ wbeard52: Ich habe gerade Win-Left wiederholt ausprobiert und es wurde durch 50% auf der linken Seite des Bildschirms, 50% auf der rechten Seite des Bildschirms und wie mein Fenster ursprünglich war (nicht zentriert, klein) gewechselt.
Sarah Vessels
2
Durch wiederholtes Drücken von Win-Left oder Win-Right wird das Fenster einfach auf 50% der verfügbaren Monitore nach links / rechts verschoben und wieder an die ursprüngliche Position zurückgesetzt. Das Fenster wird in keiner Weise zentriert.
dgw
13

Dies ist nicht genau zum Zentrieren gedacht, aber Sie können das Fenster leicht nach links und rechts (und nach oben und unten) bewegen.

  1. Fokussiere ein Fenster.
  2. Drücken Sie Alt+ Space.
  3. Drücken Sie M(für “Bewegen”).
  4. Verwenden Sie die Pfeiltasten, um das Fenster genau dorthin zu verschieben, wo Sie es möchten.
  5. Drücken Sie, Enterwenn Sie fertig sind.
ddinchev
quelle
1
Für diese Lösung muss keine zusätzliche Software installiert werden. Es ist vielleicht nicht die genaue Lösung, aber ich denke, es ist genug, um die Arbeit zu erledigen
afuzzyllama
Dies funktioniert nur, wenn ein Fenster nicht maximiert ist.
TylerH
@ TylerH: das ist wahr. Es ist jedoch nur erforderlich, dass Sie Windows + rechts drücken (um das Fenster in die 50% rechte Position zu bringen) und dann den Anweisungen in dieser Antwort folgen, um es nach links zu verschieben.
Rasmus Larsen
5

Ich würde vorschlagen, AutoHotkey zu verwenden .
Ein Beispielskript, das genau das tut, was Sie gefragt haben, wurde bereits in einer Antwort auf eine andere Frage bereitgestellt .
Hier ist der Code des Skripts:

#!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
}

Ich habe eine geringfügige Änderung vorgenommen, damit der untere Rand des Fensters nicht unter die Taskleiste fällt, und habe den Wert windowWidthvon 0,7 auf 0,5 geändert .

Bearbeiten : Arbeitet jetzt mit mehreren Monitoren und verwendet den Arbeitsbereich für obere und untere Werte.

Nebenbei bemerkt wurde WinSplit Revolution eingestellt und durch eine kostenpflichtige App namens MaxTo ersetzt.
AutoHotkey ist nicht nur sehr leistungsfähig und deckt viel mehr Anwendungsfälle ab, sondern ist auch kostenlos und Open Source.

vctls
quelle
1
Fast großartig ... Mit Ausnahme des einen ernsten Problems. Bei mehreren erweiterten Monitoren wird dadurch immer ein Fenster von einem sekundären Monitor auf den Hauptmonitor verschoben. Irgendwelche Ideen, wie man das behebt? WinMove scheint keine zusätzlichen Parameter zu haben.
DKroot
@DKroot Ich muss es mit einem zweiten Bildschirm versuchen. Ich habe dies nur auf einer einzigen Ultrawide verwendet. In WinMove heißt es in der Dokumentation: «Negative Werte für die x- und y-Koordinaten sind zulässig, um Systeme mit mehreren Monitoren zu unterstützen und das Verschieben eines Fensters vollständig vom Bildschirm zu ermöglichen.» Im Forum finden Sie Beispiele für Skripte mit mehreren Monitoren. aber es wird noch komplizierter: autohotkey.com/board/topic/…
vctls
Vielen Dank für den Link! Ich konnte Ihr Skript und das verknüpfte Skript perfekt zu einem kombinieren. (Das verknüpfte Skript ändert die Größe nicht und funktioniert daher zB nicht in maximierten Fenstern). Das Skript ist zu lang, um in den Kommentaren enthalten zu sein. Stört es Sie, wenn ich es als separate Antwort poste?
DKroot
Ein weiterer Test-Hinweis zu Ihrem Skript: Interessanterweise funktioniert es in einem Setup mit 3 Monitoren, z. B. # 1 Main, # 2 und # 3, auch bei # 1 und # 3, verschiebt jedoch die Fenster von # 2 nach # 1.
DKroot
1
Huh, das ist komisch. Ich habe es aktualisiert, damit es auf mehreren Monitoren funktioniert. Ich habe versucht, es so kurz und thematisch wie möglich zu halten, aber vielleicht möchten Sie die Deluxe Edition wie im Forum nutzen;)
vctls