Wie kann man eine Anwendung mit PowerShell auf einem bestimmten Monitor öffnen?

Melden
  1. Grundlegende Problematik der Positionierung von Fenstern
  2. Methoden zur Steuerung der Fensterposition
  3. Ermittlung der Monitor-Koordinaten
  4. Beispiel: Anwendung starten und auf zweiten Monitor verschieben
  5. Fazit

Das Öffnen einer Anwendung auf einem spezifischen Monitor mit PowerShell ist nicht direkt mit einem einfachen Befehl möglich, da PowerShell alleine standardmäßig keine Kontrolle über die Position von Fenstern auf mehreren Monitoren bietet. Es bedarf einer Kombination aus PowerShell-Skripting und Nutzung von Windows-API-Funktionen oder externen Tools, um die geplante Positionierung der Anwendung zu realisieren.

Grundlegende Problematik der Positionierung von Fenstern

Windows-Programme starten in der Regel an der Position, die sie zuletzt verwendet haben oder an der Standardposition, die das Betriebssystem bestimmt. Wenn mehrere Monitore angeschlossen sind, ist es nicht garantiert, dass eine neu gestartete Anwendung automatisch auf dem gewünschten Monitor erscheint. Das Betriebssystem kümmert sich in erster Linie um die Verwaltung der Fensterpositionen, während PowerShell keinen direkten Befehl besitzt, um eine Anwendung gezielt einem Monitor zuzuweisen.

Methoden zur Steuerung der Fensterposition

Um eine Anwendung nach dem Start gezielt auf einen bestimmten Monitor zu verschieben, kann man via PowerShell Windows-API-Funktionen aufrufen. Dabei werden DLL-Importe genutzt, mit denen Fenster-Handles (Fenster-IDs) lokalisiert und anschließend Koordinaten gesetzt werden können. Nach dem Starten der Anwendung mit PowerShell wird das zugehörige Fenster gesucht und mit der Funktion SetWindowPos oder MoveWindow an die gewünschte Position des gewünschten Monitors verschoben.

Ermittlung der Monitor-Koordinaten

Mehrere Monitore haben unterschiedliche Koordinatensysteme, die sich auf den gesamten virtuellen Bildschirm erstrecken. Der primäre Monitor beginnt meist bei 0,0. Ein zusätzlicher Monitor kann negative oder positive Koordinaten haben, abhängig von seiner Position relativ zum primären Monitor. Über Windows-API-Funktionen wie EnumDisplayMonitors oder PowerShell-Module wie Get-CimInstance können Monitorinformationen abgefragt werden, um die korrekten Koordinaten zur Positionierung zu erhalten.

Beispiel: Anwendung starten und auf zweiten Monitor verschieben

Ein Beispielskript kann so aussehen, dass die Anwendung beispielsweise gestartet wird, anschließend wird kurz gewartet, bis das Anwendungsfenster sichtbar ist, das Fensterhandle ausgelesen und mit einer Windows-API-Funktion an eine neue Position verschoben, deren Koordinaten dem zweiten Monitor entsprechen. Für komplexere Aufgaben bieten sich auch Drittanbieter-Tools wie DisplayFusion oder MultiMonitorTool an, die Fenster über Befehlszeilenparameter verschieben können und sich in PowerShell integrieren lassen.

Fazit

Das direkte Öffnen einer Anwendung auf einem spezifischen Monitor per PowerShell erfordert die Kombination aus Prozessstart, Fenstererkennung und Manipulation der Fensterposition mit Hilfe von Windows-APIs. Ohne solche Hilfsmittel ist die reine PowerShell-Funktionalität begrenzt. Für einfache Automatisierungsszenarien kann man jedoch mit etwas Programmieraufwand und Kenntnis der Windows-API eine zufriedenstellende Lösung realisieren.

0

Kommentare