2009-10-08 3 views

Antwort

38

In C#: Screen Class Repräsentiert ein Anzeigegerät oder mehrere Anzeigegeräte in einem einzigen System. Sie möchten das Bounds Attribut.

foreach(var screen in Screen.AllScreens) 
{ 
    // For each screen, add the screen properties to a list box. 
    listBox1.Items.Add("Device Name: " + screen.DeviceName); 
    listBox1.Items.Add("Bounds: " + screen.Bounds.ToString()); 
    listBox1.Items.Add("Type: " + screen.GetType().ToString()); 
    listBox1.Items.Add("Working Area: " + screen.WorkingArea.ToString()); 
    listBox1.Items.Add("Primary Screen: " + screen.Primary.ToString()); 
} 
+1

Mit 'foreach (Screen Bildschirm in Screen.AllScreens)' sieht das sogar noch besser aus. –

+0

In der Tat. Als ich antwortete, wusste ich nicht C# :) –

+0

Dies zeigt nur einen Monitor, wenn von einem Dienst ausgeführt wird, gibt es eine Arbeit um? –

2

http://msdn.microsoft.com/en-us/magazine/cc301462.aspx

GetSystemMetrics ist eine praktische Funktion, die Sie alle Arten von globalen Dimensionen zu bekommen verwenden können, wie die Größe eines Symbols oder Höhe einer Fensterbeschriftung. In Windows 2000 gibt es neue Parameter wie SM_CXVIRTUALSCREEN und SM_CYVIRTUALSCREEN, um die virtuelle Größe des Bildschirms für mehrere Monitorsysteme zu erhalten. Windows-Neulinge - und auch Profis - sollten sich die Dokumentation zu GetSystemMetrics ansehen, um alle verschiedenen Systemmetriken (Dimensionen) zu sehen, die Sie bekommen können. Weitere Informationen finden Sie im Platform SDK unter http://msdn.microsoft.com/library/en-us/sysinfo/sysinfo_8fjn.asp. GetSystemMetrics ist eine praktische Funktion, die Sie häufig verwenden müssen, und mit jeder Version von Windows erscheinen neue Dinge.

+0

Das ist sehr cool. Es gibt verwalteten Code für die meisten dieser Sachen ... Zum Beispiel enthält die 'System.Windows.Forms.SystemInformation' Klasse wahrscheinlich eine Mehrheit. – mbrownnyc

5

Verwenden Sie die Screen class.

Sie können alle Monitore im Array Screen.AllScreens sehen und die Auflösung und Position jedes einzelnen unter Verwendung der Bounds-Eigenschaft überprüfen.

Beachten Sie, dass einige Grafikkarten zwei Monitore zu einem einzigen sehr breiten Bildschirm zusammenführen, so dass Windows denkt, dass es nur einen Monitor gibt. Wenn Sie möchten, können Sie überprüfen, ob die Breite eines Bildschirms mehr als das Doppelte seiner Höhe beträgt. Wenn dies der Fall ist, handelt es sich wahrscheinlich um eine horizontale Spanne, und Sie können sie als zwei gleiche Bildschirme behandeln. Dies ist jedoch komplizierter und Sie müssen es nicht tun. Vertikale Spannweiten werden ebenfalls unterstützt, sind jedoch weniger verbreitet.

Verwandte Themen