2012-09-14 16 views
5

muszę pokazać okno na ekranie przez jego numer identyfikacyjny, na przykład mam taką sytuację screen setup on windowsJak uzyskać numer identyfikacyjny ekran z klasy ekran

chcę pokazać coś na czwartym, kiedy się wszystkie ekrany wg używając Screen.AllScreens, mój czwarty ekran jest 0 elementem w tablicy, ponieważ AllScreens przywraca ekrany nie według numeru wcięcia, ale przez squence. Więc może ktoś wie, w jaki sposób uzyskać numer identyfikacyjny z klasy Ekran, lub jak uzyskać współrzędne ekranu i ograniczenia przez jego numer identyfikacyjny.

UPDATE:

DeviceName nie zawsze jest corrspont do numeru identyfikacyjnego (patrz zdjęcie poniżej):

enter image description here

+0

Czy znalazł rozwiązanie? – acelot

Odpowiedz

2

Jeśli spojrzeć na screen.DeviceName powinieneś dostać \\\\.\\DISPLAY1, \\\\.\\DISPLAY2, itd. Można użyć to, aby wyszukać \\\\.\\DISPLAY4.

+0

Cześć, twoje rozwiązanie nie działa, zaktualizowałem moje pytanie obrazem, na którym numer identyfikacyjny nie jest równy numerowi przedmiotu. – Velutis

0

Aby uzyskać numer ekranu (brudną drogę, ale działa):

var sceenId = -1; 
var targetScreen = Screen.FromPoint(Cursor.Position); 
for (var i = 0; i < Screen.AllScreens.Length; i++) 
{ 
    if (!Equals(targetScreen, Screen.AllScreens[i])) 
     continue; 
    sceenId = i; 
    break; 
} 

Aby uzyskać współrzędne ekranu i granice jego numer identyfikacyjny:

Screen.AllScreens[sceenId].Bounds