W jaki sposób można wypytywać okna, aby zobaczyć, jakie monitory są podłączone i na jakiej rozdzielczości działają?Znajdź numer i rozdzielczość dla wszystkich monitorów.
Odpowiedz
W języku C#: Screen
Class Reprezentuje urządzenie wyświetlające lub wiele urządzeń wyświetlających w jednym systemie. Chcesz atrybut 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());
}
http://msdn.microsoft.com/en-us/magazine/cc301462.aspx
GetSystemMetrics to poręczne funkcji można użyć, aby uzyskać wszelkiego rodzaju globalnych wymiarów, jak rozmiaru ikony lub wysokość okna podpisie. W systemie Windows 2000 istnieją nowe parametry, takie jak SM_CXVIRTUALSCREEN i SM_CYVIRTUALSCREEN, aby uzyskać wirtualny rozmiar ekranu dla wielu systemów monitorowania. Również nowicjusze systemu Windows, a także profesjonaliści, powinni zapoznać się z dokumentacją GetSystemMetrics, aby zobaczyć wszystkie różne dane systemowe (wymiary), jakie można uzyskać. Zobacz zestaw SDK platformy za najnowszy numer: http://msdn.microsoft.com/library/en-us/sysinfo/sysinfo_8fjn.asp. GetSystemMetrics to przydatna funkcja, której często potrzebujesz, a nowe rzeczy pojawiają się w każdej wersji systemu Windows.
To jest bardzo fajne. Istnieje kod zarządzany dla większości takich rzeczy ... Na przykład klasa "System.Windows.Forms.SystemInformation" prawdopodobnie zawiera większość. – mbrownnyc
Użyj Screen class.
Możesz zobaczyć wszystkie monitory z tablicy Screen.AllScreens
i sprawdzić rozdzielczość oraz położenie każdego z nich za pomocą właściwości Bounds
.
Należy zauważyć, że niektóre karty graficzne scalą dwa monitory w jeden bardzo szeroki ekran, tak że system Windows uważa, że jest tylko jeden monitor. Jeśli chcesz, możesz sprawdzić, czy szerokość ekranu przekracza dwukrotnie jego wysokość; jeśli tak, to prawdopodobnie jest to horyzontalna rozpiętość i możesz traktować to jako dwa równe ekrany. Jest to jednak bardziej skomplikowane i nie musisz tego robić. Pionowe przęsła są obsługiwane, ale rzadziej.
- 1. Java: Uzyskiwanie rozdzielczości jednego/wszystkich dostępnych monitorów (zamiast całego pulpitu)?
- 2. Znajdź numer główny?
- 3. Znajdź bezpłatny numer wyświetlacza X11
- 4. Znajdź wszystkie możliwe kombinacje znaków reprezentujący numer
- 5. Używanie indeksu monitorów
- 6. Przyspieszenie Rozdzielczość Grails Rozdzielczość
- 7. Znajdź numer i usunąć sąsiednie znaki równy tej liczbie
- 8. Znajdź typy we wszystkich złożeniach
- 9. Znajdź numer ciągłej podtablicy o sumie zerowej
- 10. Znajdź numer portu, gdzie HDFS nasłuchuje
- 11. Kod X Znajdź i zamień we wszystkich plikach projektu
- 12. Określ numer wiersza i kolumny dla UICollectionView
- 13. Wskaźniki do tworzenia wirtualnych sterowników monitorów dla OS X
- 14. Znajdź wszystkich najbliższych sąsiadów w określonej odległości
- 15. czy rozdzielczość obrazu ma znaczenie dla przeglądarek?
- 16. VBA - Znajdź kolumnę z określonym nagłówkiem i znajdź sumę wszystkich wierszy w tej kolumnie
- 17. Mysql - znajdź tabelę we wszystkich bazach danych
- 18. Jak ustawić rozdzielczość obrazu dla animacji?
- 19. Jak uzyskać rozdzielczość ekranu? Dla aplikacji WinRT?
- 20. Zestaw aparatu Android Rozdzielczość
- 21. Programowanie Androida - rozdzielczość ekranu
- 22. Odzyskaj numer i numer IMEI telefonu komórkowego.
- 23. Jenkins buduje ścianę monitorów bez ręcznego logowania
- 24. Wykonaj automatyczną zmianę podłączonych monitorów w systemie Windows 8
- 25. Znajdź domyślne zestawienie dla kolumn dla wszystkich tabel w SQL Server
- 26. Bash: Znajdź numer wiersza wywołania funkcji z pliku źródłowego
- 27. Uzyskaj natywną rozdzielczość ekranu
- 28. Zmieniono AllowOverride dla wszystkich i nadal nic
- 29. Zrzut ekranu Pythona 2+ monitorów (Windows)
- 30. Znajdź parzysty/nieparzysty numer bez użycia operatora matematycznego/bitowego
Używając 'foreach (ekran w Screen.AllScreens)' to wygląda jeszcze lepiej. –
Rzeczywiście. Kiedy odpowiedziałem, nie wiedziałem C# :) –
To pokazuje tylko jeden monitor podczas uruchamiania z usługi, czy jest jakieś obejście? –