Inhaltsverzeichnis
Windows Fenster nebeneinander
Windows selber hat ja auch eine Funktion, um die Fenster nebeneinander anzuordnen. Leider hat Microsoft eine eher seltsame Interpretation des Begriffs „Nebeneinander“…
Also muß man wieder selber ran:
Das Programm
Zuerst bastelt man sich eine Batch-Datei
- arrange_windows.bat
.venv\scripts\python arrange_windows.py
Da diese Batch- Datei beim Lauf selber auch ein Fenster aufmacht, was einem dann das Ergebnis versaut, muß man tricksen:
Mit der rechten Maustaste über der Batch- Datei geht man auf „Senden an/Desktop“. Dabei wird eine Verknüpfung auf dem Desktop erzeugt. Bei dieser Verknüpfung geht man dann auf „Eigenschaften“ und wählt „Laufen: Minimiert“, dann gehts.
Hier das Script selber:
- arrange_windows.py
import sys import pygetwindow as gw from functools import cmp_to_key import ctypes user32 = ctypes.windll.user32 screen_width = user32.GetSystemMetrics(0) screen_height = user32.GetSystemMetrics(1) # Get all windows windows = gw.getAllWindows() active_windows = [] for window in windows: if window.isMinimized: continue if window.topleft.x < 0: continue if window.title == "": continue if window.title in [ "Program Manager", "Microsoft Text Input Application", "Einstellungen" ]: continue print(window.title) active_windows.append(window) active_windows.sort( key = cmp_to_key( lambda item1, item2: item1.topleft.x - item2.topleft.x)) nr_of_windows = len( active_windows ) width = float(screen_width / nr_of_windows) for index in range( nr_of_windows ): window = active_windows[ index ] window.moveTo( int(index * width), 0) window.resizeTo( int(width), screen_height)
Anwendung
Zuerst sortiert man sich seine gewünschten Fenster grob von links nach rechts. Unerwünschte Fenster minimiert man.
Wenn man dann die Verknüpfung startet, werden die sortierten Fenster in der Reihenfolge gleichmäßig auf dem Bildschirm verteilt