2009-10-08 17 views

risposta

38

In C#: Screen Class Rappresenta un dispositivo di visualizzazione o più dispositivi di visualizzazione su un singolo sistema. Vuoi l'attributo Bounds.

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

Usando 'foreach (Screen screen in Screen.AllScreens)' questo sembra ancora meglio. –

+0

Infatti. Quando ho risposto, non conoscevo C# :) –

+0

Questo mostra solo un monitor durante l'esecuzione da un servizio, c'è un problema? –

2

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

GetSystemMetrics è una comoda funzione è possibile utilizzare per ottenere tutti i tipi di dimensioni globali, come le dimensioni di un'icona o l'altezza di una didascalia finestra. In Windows 2000, ci sono nuovi parametri come SM_CXVIRTUALSCREEN e SM_CYVIRTUALSCREEN per ottenere la dimensione virtuale dello schermo per più sistemi di monitoraggio. Anche i neofiti di Windows, e anche i professionisti, dovrebbero consultare la documentazione di GetSystemMetrics per visualizzare tutte le diverse metriche di sistema (dimensioni) che è possibile ottenere. Vedere il Platform SDK per l'ultima a http://msdn.microsoft.com/library/en-us/sysinfo/sysinfo_8fjn.asp. GetSystemMetrics è una pratica funzione che è spesso necessario utilizzare e nuove funzionalità vengono visualizzate con tutte le versioni di Windows.

+0

Questo è molto bello. Esiste un codice gestito per la maggior parte di questo materiale ... Ad esempio, la classe 'System.Windows.Forms.SystemInformation' probabilmente contiene la maggioranza. – mbrownnyc

5

Utilizzare Screen class.

È possibile visualizzare tutti i monitor nell'array Screen.AllScreens e verificare la risoluzione e la posizione di ciascuno utilizzando la proprietà Bounds.

Si noti che alcune schede video uniranno due monitor in un unico schermo molto ampio, in modo che Windows pensi che ci sia un solo monitor. Se lo desideri, puoi controllare se la larghezza di uno schermo è più del doppio dell'altezza; se è così, è probabilmente un intervallo orizzontale e puoi trattarlo come due schermi uguali. Tuttavia, questo è più complicato e non è necessario farlo. Anche gli span verticali sono supportati ma meno comuni.

Problemi correlati