Wenn Sie im Dialogfeld Bildschirmauflösung auf die Schaltfläche Identifizieren klicken, zeigt Windows Ihnen auf jedem Monitor große weiße Monitornummern an. Es war einfach, sie programmatisch zusammen mit Monitorkoordinaten in Windows XP (mit EnumDisplayDevices) zu finden, aber unter Windows 7 ist es kaputt. Wie kann ich das tun?
Kennt jemand den Weg?
Ich wollte in meinen Windows-Anwendungen nie die Anzahl der Monitore wissen, aber Sie können GetSystemMetrics-Funktion mit Parameterwert SM_CMONITORS
, um die Anzahl der Anzeigemonitore auf einem Desktop abzurufen.
Ich rufe meine Windows-Anwendungsfunktion GetSystemMetrics
hauptsächlich mit den Parameterwerten SM_CXVIRTUALSCREEN
, SM_CYVIRTUALSCREEN
, SM_XVIRTUALSCREEN
und SM_YVIRTUALSCREEN
auf, um zu vermeiden, Anwendungsfenster ganz oder teilweise außerhalb des Anzeigebereichs zu öffnen. Ein Anwendungsfenster könnte dennoch nicht sichtbar sein, wenn der Benutzer den Anzeigebereich über mehrere Monitore erweitert hat, aber nicht alle eingeschaltet sind.
Die Funktion SystemParametersInfo funktioniert mit dem Wert SPI_GETWORKAREA
für uiAction
Parameter ist auch sehr nützlich, um zu wissen, wo ein Anwendungsfenster positioniert werden kann und wie groß es in Breite und Höhe auf dem primären Bildschirm sein kann, ohne teilweise durch andere Fenster (Balken) verdeckt zu sein, die immer oben sind.
Siehe auch GetMonitorInfo-Funktion , wenn weitere Informationen von den Monitoren benötigt werden Ihre Windows-Anwendung.
Für Windows-Versionen, die WDDM unter Windows 7 unterstützen, können Sie einfach DXGI verwenden, das Teil von DirectX ist. Mit DXGI können Sie sehr einfach die vorhandenen Grafikkarten, die verfügbaren Bildschirmausgaben pro Adapter und die unterstützten Anzeigemodi pro Bildschirmausgabe auflisten. Während der Aufzählung gibt es eine Menge zusätzlicher Daten, die Sie auslesen können, wie z. B. Handles, Identifikatoren und Gerätenamen. All dies kann leicht verwendet werden, um auch die Arbeitsbereiche abzurufen. Die Reihenfolge, in der Adapter und Ausgaben aufgelistet werden, wird vom System definiert und entspricht der Reihenfolge Ihres Konfigurationsbildschirms.
Weitere Informationen finden Sie hier: MSDN DXGI-Übersicht
Tags und Links windows-7 windows winapi multiple-monitors windows-shell