Alles für die Arbeit mit Windows - dem besten Betriebssystem von Microsoft. Wir decken alles ab, vom Windows 10 Insider-Programm bis hin zu Windows 11. Bietet Ihnen die neuesten Nachrichten zu Windows 10 und mehr.

So zentrieren Sie jedes Fenster auf Ihrem Bildschirm mit AutoHotKey

25

Ist es nicht extrem ärgerlich, wie, zumindest unter Windows, jedes Fenster irgendwo auf dem Bildschirm erscheinen kann? Geht Ihnen diese tägliche Zufälligkeit auf die Nerven und Sie hätten lieber mehr Kontrolle über die Platzierung Ihrer Fenster auf dem Bildschirm? Dank AutoHotKey können Sie das jetzt.

In diesem Tutorial sehen wir, wie Sie dieses Problem mit einem AutoHotKey-Skript lösen können. Wir werden es so bauen, dass es jedes Fenster auf Tastendruck in die Mitte Ihres Bildschirms verschiebt. Klingt süß? Mal sehen, wie es gemacht wird!

So richten Sie einen fensterzentrierenden Hotkey mit AutoHotKey ein

Die halbe Miete beim Erstellen eines Skripts besteht darin, herauszufinden, wie es funktionieren wird, bevor Sie überhaupt ein einzelnes Zeichen eingeben. Machen wir also einen solchen Aktionsplan im Klartext, den wir dann zu einem Drehbuch „mutieren“.

Das "Problem" hat Windows

Windows (wie in "die rechteckigen Dinger auf unseren Bildschirmen", nicht das Betriebssystem) neigt dazu, irgendwo auf dem Bildschirm zu erscheinen. Es lenkt ab und kann auch ärgerlich sein, wenn es wiederholt vorkommt. Besonders wenn es um mehrere Anfragende geht, die an verschiedenen Stellen auftauchen und Benutzereingaben erwarten.

Die Lösung des Problems

Abgesehen davon, dass Tastenanschläge und Mausklicks an jedes Fenster gesendet werden, kann AutoHotKey diese auch manipulieren. Wir haben in der Vergangenheit gesehen, wie Sie AutoHotKey verwenden können, um Fenster mit einer Tastenkombination „immer im Vordergrund“ anzuheften. Dieses Mal nutzen wir jedoch die Fenstermanipulationsfähigkeiten von AutoHotKey, um:

  1. "Lesen" Sie die ID des aktiven Fensters.
  2. "Lesen" Sie auch seine Abmessungen (Breite und Höhe).
  3. "Lesen" Sie die Abmessungen des Monitors.
  4. Kombinieren Sie die Abmessungen des Monitors und des Fensters, um die optimalen Koordinaten für die Darstellung des Fensters in der Bildschirmmitte zu berechnen.
  5. Bewegen Sie das Fenster zu diesen Koordinaten.

Schließlich ordnen wir das Obige einer Verknüpfung zu. Auf diese Weise können Sie es „on-demand“ nennen, anstatt es auf alle Fenster anzuwenden – was Apps und Spiele im Vollbildmodus stören könnte.

Beachten Sie, dass wir in diesem Tutorial direkt in AutoHotKey eintauchen. Wenn Sie damit nicht vertraut sind und vorher mehr erfahren möchten, lesen Sie unsere schnelle AutoHotKey-Anleitung für Anfänger.

Zuerst den HotKey einrichten

Wir haben erwähnt, wie wir die Funktion, die wir erstellen, einer Verknüpfung zuordnen. Es ist jedoch wahrscheinlich besser, wenn wir mit diesem Teil beginnen, um es aus dem Weg zu räumen.

Laden Sie zunächst das Installationsprogramm von der offiziellen Website von AutoHotKey herunter. Entscheiden Sie sich für die "aktuelle" Version anstelle der v2-Beta oder der veralteten Version 1.0. Installieren Sie es dann auf Ihrem PC.

Starten Sie den Datei-Explorer (der schnellste Weg ist die Tastenkombination Windows-Taste + E) und wechseln Sie zu dem Pfad, in dem Sie Ihr Skript erstellen möchten. Wenn AutoHotKey installiert ist, erscheinen einige neue Optionen im Rechtsklick-Menü. Klicken Sie also mit der rechten Maustaste auf den leeren Bereich des Fensters des Datei-Explorers und wählen Sie Neu > AutoHotKey-Skript.

So zentrieren Sie jedes Fenster auf Ihrem Bildschirm mit AutoHotKey

Geben Sie der Datei Ihres Skripts einen Namen, klicken Sie mit der rechten Maustaste darauf und bearbeiten Sie sie. Wenn Sie keine codefreundliche Textbearbeitungs-App wie Visual Studio Code oder Notepad++ verwenden, verwenden Sie Windows Notepad. Vermeiden Sie Editoren wie Wordpad, die Ihrem "Code" nutzlose (für den Zweck) Syntax hinzufügen könnten.

Wenn Sie sich im Editor Ihrer Wahl befinden, sehen Sie, dass Ihr AutoHotKey-Skript bereits einige Zeilen oben vorbelegt hat. Sie sind aus Stabilitäts- und Kompatibilitätsgründen da. Sie können angepasst werden, aber lassen Sie sie für dieses Tutorial so, wie sie sind.

"Bewegen" Sie sich zwei oder drei Zeilen darunter und geben Sie die Verknüpfung ein, die Ihre Funktion startet. Sie können eine Tastenkombination erstellen, indem Sie "+" für Shift, "^" für CTRL, "!" für Alt und "#" für die Windows-Taste sowie jede "normale" Taste der Tastatur (Buchstaben und Zahlen).

Um beispielsweise Ihr Skript mit der Kombination STRG + Y zu starten, verwenden Sie:

^y::

Das doppelte ":" ist wie zu sagen: "Hey, AutoHotKey, bitte ordnen Sie die Zeichenfolge oder Tastenkombination auf der linken Seite allem auf der rechten Seite zu".

Bewegen Sie zwei oder drei Zeilen darunter, indem Sie die Eingabetaste drücken, und geben Sie "return" ein, was das Ende der jeweiligen Funktion markiert. Das vollständige Ergebnis sollte wie folgt aussehen:

^y::; This is a comment.return

Das "; Dies ist ein Kommentar." Zeile ist genau das, ein Kommentar im "Code" des Skripts, den AutoHotKey nicht ausführen wird. Es ist zu Dokumentationszwecken da, um die Stelle zu markieren, an der wir in den folgenden Schritten den "Code" des Skripts eingeben.

So zentrieren Sie jedes Fenster auf Ihrem Bildschirm mit AutoHotKey

Wenn Sie in der Vergangenheit unserem Leitfaden zum Erstellen von App-spezifischen Hotkeys mit AutoHotKey gefolgt sind, in diesem Fall … tun Sie es nicht. Sie möchten, dass Ihr Fensterzentrierungs-Hotkey "global" ist, um jedes Fenster von jeder App aus zu zentrieren. Wenn Sie es an eine bestimmte App "binden", wirkt es nur auf die Fenster dieser App.

Rufen Sie die Details des aktiven Fensters ab

Wir möchten, dass unsere Verknüpfung auf das aktive Fenster wirkt, und wir benötigen auch seine Abmessungen für unsere Berechnungen. Wir können diese Details wie folgt finden:

WinGetTitle, ActiveWindowTitle, AWinGetPos,,, Width, Height, %ActiveWindowTitle%

Ersetzen Sie die Kommentarzeile, die wir dem Skript im vorherigen Abschnitt hinzugefügt haben, durch die beiden obigen Zeilen. Das Ergebnis?

So zentrieren Sie jedes Fenster auf Ihrem Bildschirm mit AutoHotKey

  • Die erste Zeile enthält den Titel des aktiven Fensters.
  • Die zweite Zeile liest seine Breite und Höhe und ordnet sie den Wörtern/Variablen "Breite" und "Höhe" zu, die wir als nächstes für unsere Berechnungen verwenden werden.

Wir haben die Details des aktiven Fensters erhalten, aber wir benötigen auch die Abmessungen des sichtbaren Bereichs des Monitors, um unser Ziel zu erreichen. Zum Glück ist es noch einfacher, diese herauszufinden.

Was ist mit dem primären Monitorbereich?

Wir brauchen keine zusätzlichen Befehle, um die Breite und Höhe unseres primären Monitors zu ermitteln. AutoHotKey kommt mit zwei voreingestellten Variablen, die diese Informationen bereits für uns enthalten: "A_ScreenWidth" und "A_ScreenHeight".

Wenn Sie sie also im nächsten Abschnitt sehen, „enthalten“ sie bereits die Breite und Höhe des primären Monitors. Es ist nichts nötig, um ihnen die richtigen Werte zuzuweisen. Somit können wir sie direkt in unseren Berechnungen verwenden.

Zeit zur Berechnung der Zielposition

Wir können die Berechnungen direkt an den Stellen des Skripts einfügen, an denen wir sie benötigen. Dennoch ist es einfacher und besser für die Lesbarkeit, wenn wir sie zwei Variablen zuordnen und diese Variablen dann in unserem Skript verwenden.

Nehmen wir also „TargetX“ als die Variable, die die horizontalen Koordinaten enthält, und „TargetY“ als diejenige mit den vertikalen Koordinaten, wohin wir das Fenster verschieben sollten, damit es in der Mitte des Bildschirms erscheint.

TargetX := (A_ScreenWidth/2)-(Width/2) ; Here we calculate the horizontal window target...TargetY := (A_ScreenHeight/2)-(Height/2) ; ...and here the vertical one.

Lassen Sie uns diese Zeilen im Klartext entziffern:

  • "TargetX" und "TargetY" sind die beiden Variablen.
  • ":=" informiert AutoHotKey, dass die Variablen gleich den Ergebnissen der Berechnungen auf der rechten Seite sein sollten und dass diese Ergebnisse als Zahlen behandelt werden sollten.
  • "(A_ScreenWidth/2)" teilt die volle Monitorbreite durch zwei.
  • "(Width/2)" macht dasselbe für die Breite des aktiven Fensters.

So zentrieren Sie jedes Fenster auf Ihrem Bildschirm mit AutoHotKey

Damit subtrahieren wir die halbe Breite des aktiven Fensters von der halben Bildschirmbreite. Was übrig bleibt, ist der Platz links vom Fenster – von der linken Seite des Bildschirms bis zu der Stelle, an der das Fenster erscheinen soll. Die zweite Zeile macht dasselbe, aber für die Höhe.

Nun zur Neupositionierung des Fensters

Ausgestattet mit dem allmächtigen Wissen, das wir durch die mystischen Befehle, die wir oben gesehen haben, erworben haben, können wir jetzt unsere magische Beschwörung herstellen, die das Ritual der Fensterteleportation vervollständigt. Oder verwenden Sie im Klartext den Befehl "WinMove" von AutoHotKey, um Fenster auf dem Bildschirm zu verschieben.

WinMove erwartet, dass wir es mit mindestens drei Informationen "füttern", um seine Tat zu erledigen: den Titel des Zielfensters und die Koordinaten, wohin es verschoben werden soll. Da wir diese Informationen bereits Variablen zugeordnet haben, ist der Befehl so einfach wie:

WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%

In obigem:

  • "WinMove" ist der AutoHotKey-Befehl, der ein Fenster bewegt.
  • "%ActiveWindowTitle%" ist die Variable, der der Titel des aktiven Fensters zugeordnet wird.
  • „%TargetX%“ und „%TargetY%“ sind die horizontalen und vertikalen Koordinaten, wohin das Fenster verschoben werden soll.

Sie können mit WinMove auch die Größe von Fenstern ändern, solche mit bestimmten Textstellen in ihren Titeln oder Inhalten überspringen usw. Da diese Funktionen außerhalb des Rahmens dieses Artikels liegen, lesen Sie die offizielle Dokumentation von AutoHotKey zum WinMove-Befehl, um mehr darüber zu erfahren.

Das letzte Skript

Schließlich erreichen wir den anspruchsvollsten Teil unserer Reise. Bereiten Sie sich auf den nächsten Schritt vor, der von Ihnen erwartet, dass Sie das Skript speichern und, naja… ausführen.

Ja, das war es – das Drehbuch ist fertig, und es bleibt nichts anderes übrig, als es auszuprobieren. Verwenden Sie die von Ihnen definierte Verknüpfung, und jedes aktive Fenster wird in die Mitte Ihres Bildschirms verschoben.

So zentrieren Sie jedes Fenster auf Ihrem Bildschirm mit AutoHotKey

Die endgültige Skriptdatei sollte, wenn sie in einem Texteditor geöffnet wird, etwa so aussehen:

; SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.^y::   WinGetTitle, ActiveWindowTitle, A ; Get the active window's title for "targetting" it/acting on it.  WinGetPos,,, Width, Height, %ActiveWindowTitle% ; Get the active window's position, used for our calculations. TargetX := (A_ScreenWidth/2)-(Width/2) ; Calculate the horizontal target where we'll move the window.  TargetY := (A_ScreenHeight/2)-(Height/2) ; Calculate the vertical placement of the window.      WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY% ; Move the window to the calculated coordinates.    return

Beachten Sie, dass Sie das obige Skript kopieren, in Notepad oder einen ähnlichen Texteditor einfügen und mit einer AHK-Erweiterung speichern können. Führen Sie es dann mit installiertem AutoHotKey aus, um jedes Fenster zu zentrieren, wenn Sie STRG + Y drücken. Wenn Ihnen diese Verknüpfung nicht gefällt, optimieren Sie die Zeile „^y::“ auf eine andere Tastenkombination. Beispielsweise !+c::würde die Funktion der Tastenkombination Umschalt + Alt + C zugeordnet.

Bonuslied

Für Ihre Bequemlichkeit haben wir uns entschieden, ein sekundäres Skript zu beschwören und einzufügen, das für diejenigen mit Dual-Monitor-Setups nützlich sein wird.

Um diesen Artikel übersichtlich zu halten, haben wir stattdessen Informationen darüber, wie das Skript darin funktioniert, in Form von Kommentaren eingefügt. Sie können sie aus Ihrer Iteration entfernen.

Die kurze Geschichte, wie es sich vom obigen Skript unterscheidet, ist, dass wir auch eine PositionToggle-Variable und etwas "IF-Logik" hinzufügen. Wir verwenden diese dann, um das Fenster zwischen den Monitoren zu "flicken". Wir sollten beachten, dass es sich um eine unelegante und "hackige" Lösung für das Problem handelt. Wir haben es jedoch einem schlankeren Code vorgezogen, da dieser Ansatz für alle, die nicht mit AutoHotKey vertraut sind, einfacher zu verstehen und zu optimieren ist.

; SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.PositionToggle = 1 ; Use a number as a toggle for marking on which monitor the window should appear.^y::   WinGetTitle, ActiveWindowTitle, A   WinGetPos,,, Width, Height, %ActiveWindowTitle%     If PositionToggle = 1 ; Check the toggle's state and "do what's between the curly brackets" if it's set to 1 for our primary monitor.  {       TargetX := (A_ScreenWidth/2)-(Width/2)      TargetY := (A_ScreenHeight/2)-(Height/2)        PositionToggle = 2 ; "Flick" the toggle so that if we reuse the hotkey, our active window will move to the second monitor.    }   Else If PositionToggle = 2 ; Have we used the hotkey before, "flicking" the toggle number to the second monitor? Then the script should instead do what's between the following curly brackets instead of the ones above.    {       SysGet, Mon2, Monitor, 2 ; Get the second monitor's details        Mon2Width := Mon2Right - Mon2Left ; Calculate the second monitor's actual width.       Mon2Height := Mon2Bottom - Mon2Top ; Calculate the second monitor's actual height.             TargetX := (Mon2Width/2)-(Width/2)+A_ScreenWidth ; Calculate where to move the window. Notice that we also add the primary monitor's width since AutoHotKey can't move windows on individual monitors but across their combined "surface".      TargetY := (Mon2Height/2)-(Height/2)+Mon2Top ; Calculate the optimal vertical target for moving the window on the second monitor. Like above, the second monitor's vertical details are detected in relation to the primary monitor. Thus, we have to get creative to get an optimal target by acknowledging how the second monitor's top isn't equal to 0 (like the primary one's).                PositionToggle = 1 ; Flick the toggle back so that if we reuse the hotkey, the window will move back to the primary monitor.    }       WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY% ; The actual action, moving the active window to our calculated coordinates.    return

Zentrieren Sie ein Fenster mit einem Schlüssel, der einfache Weg

Und jetzt sind Sie fertig! Wenn alles gut funktioniert, können Sie jetzt jederzeit Ihren neu eingerichteten Hotkey verwenden, um ein Fenster zu zentrieren.

Aufnahmequelle: www.makeuseof.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen