Als Benutzer mit zwei Monitoren bei der Arbeit habe ich festgestellt, dass sich Anwendungen in Bezug auf den Monitor, auf dem sie geöffnet werden, unterschiedlich verhalten (primärer oder sekundärer Monitor, letzter Monitor, auf dem die Anwendung geöffnet wurde usw.). Um ehrlich zu sein, ärgern mich einige Anwendungen, weil ich möchte, dass sie auf meinem Hauptmonitor geöffnet werden. Wenn ich sie dort haben möchte, schiebe ich sie auf meine Sekundärseite. Diese Anwendungen befinden sich jedoch außerhalb meiner Kontrolle, daher möchte ich nach meinen eigenen Anwendungen fragen, die möglicherweise von Personen ausgeführt werden, die zwei Monitore verwenden.
Welche Arten von Steuerelementen stehen zur Verfügung, damit Personen festlegen können, auf welchem Monitor Ihre Anwendung geöffnet wird, sich eine Anwendung an den Monitor "erinnern" lässt, an dem er sich beim Schließen befand, und sich dort wieder öffnet, und die Anwendung auf einem bestimmten Monitor gestartet werden muss ?
Ich suche nach Lösungen für alle Betriebssysteme und Programmiersprachen, obwohl ich vermute, dass unterschiedliche Betriebssysteme und Sprachen unterschiedliche Steuerelemente haben werden.
Als Windows-Programmierer steuere ich den Startmonitor von Fenstern, die von meinen Apps erstellt wurden, mit A. Speichern der letzten Position meiner Apps in der Registrierung und Wiederherstellen dieser und b. Fehlen gespeicherte Informationen, setzen Sie die Startposition auf magische Flag-Werte, mit denen Windows die App mit ihrer Standardlogik positioniert. Die Standardlogik ändert sich von Betriebssystem zu Betriebssystem, da MS die Benutzererfahrung verbessert, aber sie sorgt dafür, dass die App auf dem Monitor geöffnet wird, auf den der Benutzer am wahrscheinlichsten schaut.
Als Benutzer mit einem Multi-Monitor-Windows XP/Vista-System würde ich den nVidia Desktop Manager verwenden, der Startpositionen für Anwendungen festlegen kann.
Zu beachten ist, dass sich die Monitorkonfiguration möglicherweise zwischen den Aufrufen der Anwendung geändert hat (z. B. Ausführen auf einem Laptop, der manchmal angedockt ist und einen externen Monitor verwendet). Stellen Sie sicher, dass sich Ihre Anwendung im sichtbaren Bereich befindet.
Bei den APIs gibt es die System.Windows.Forms.Screen-Klasse, die Ihnen einige dieser Informationen liefert.
Aus der Perspektive des traditionellen Unix- und Linux-Window-Managers haben Sie keine Kontrolle. Der Fenstermanager übernimmt die Positionierung des Fensters.
Möglicherweise können Sie dem Fenstermanager Hinweise geben, es sollte jedoch möglich sein, den Fenstermanager so zu konfigurieren, dass solche Dinge ignoriert werden. Das Verschieben oder Platzieren des Fensters aus dem Programm kann bei Verwendung eines großen virtuellen Desktops leicht Schmerzen verursachen.
Siehe: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
In KDE 4.13.3 (möglicherweise in einigen älteren und neueren Personen können Sie dies tun (Übersetzung kann inakurieren - ich verwende eine polnische Version):