2010-11-08 38 views
19

Potrzebuję zmienić rozdzielczość ekranu za pomocą mojej aplikacji.Uzyskiwanie rozdzielczości ekranu

Jak:

  1. Czytaj bieżącą rozdzielczość
  2. zmieniając go używając mojego wniosku i następnie powrót do prądu na wyjściu.

Dzięki Furqan

Odpowiedz

26

1) W jaki sposób mogę odczytać aktualną rozdzielczość ekranu ?

Uzyskanie aktualnej rozdzielczości ekranu jest łatwe i wbudowane w strukturę bez konieczności zagłębiania się w coś podobnego do API GetSystemMetrics. Klasa Screen zawiera informacje o wszystkich urządzeniach wyświetlających podłączonych do systemu. Tak aby określić rozdzielczość monitora podstawowego, można użyć coś takiego:

Dim screenWidth as Integer = Screen.PrimaryScreen.Bounds.Width 
Dim screenHeight as Integer = Screen.PrimaryScreen.Bounds.Height 

do czynienia z wieloma monitorami, spojrzeć na własność Screen.AllScreens, która zwraca tablicę Screen obiektów odpowiadających każdemu z monitorów podłączonych do system. Następnie można określić (przy użyciu powyższego kodu) rozdzielczość każdego z wyświetlaczy podłączonych do komputera, wykonując pętlę z tablicy obiektów o numerach Screen.

2) Jak zmienić bieżącą rozdzielczość ekranu z mojej aplikacji VB.NET?

Zmiana rozdzielczości ekranu jest nieco trudniejsza. Zanim przejdziemy dalej, chciałbym Cię ostrzec, że aplikacja dostosowująca rozdzielczość wyświetlania użytkownika jest nieoczekiwana i potencjalnie creates a hostile user environment. Wiem, że nie skorzystałbym z aplikacji, która zmieniła rozdzielczość ekranu bez pozwolenia, i bardzo długo zastanawiałabym się nad wykorzystaniem tego, co mnie do tego wymagało. Jeśli próbujesz zrobić wygaszacz ekranu, prawdopodobnie istnieje lepszy i łatwiejszy sposób robienia tego, co chcesz. Mając to na uwadze, można to zrobić z VB.NET, jeśli chcesz P/Invoke kilka funkcji z Windows API.

Najprostszym sposobem, jeśli martwisz się tylko przypadkiem jednego monitora, jest użycie funkcji ChangeDisplaySettings, która pozwala określić tryb graficzny domyślnego wyświetlacza (tylko główny monitor użytkownika).

Aby obsłużyć obudowę z wieloma monitorami, musisz użyć funkcji EnumDisplayDevices, aby uzyskać informacje o wszystkich urządzeniach wyświetlających podłączonych do komputera oraz o funkcji ChangeDisplaySettingsEx w celu zmiany określonego ekranu.

Sprawdź, czy pinvoke.net zadeklarować podpisy wywołań interfejsu API Windows w VB.NET. Wyszukiwarka Google pojawiła się this thread, mimo że nie zweryfikowaliśmy dostarczonego przez nią przykładowego kodu.

Aby zmodyfikować rozdzielczość ekranu tylko wtedy, gdy aplikacja jest uruchomiona, a następnie przywrócić ją po zamknięciu programu przez użytkownika, należy zapisać bieżące ustawienia ekranu przed ich zmodyfikowaniem, a następnie odtworzeniem (przy użyciu tej samej metody połączenia) po wyjściu aplikacji.

+5

+1 ... aplikacja nie zmieniła mojej rozdzielczości ekranu! Nawet gry (używane?) Całkowicie to wykręcają. –

4

Jak zdobyć aktualną rozdzielczość ekranu

Public Function ScreenResolution() As String 
     Dim intX As Integer = Screen.PrimaryScreen.Bounds.Width 
     Dim intY As Integer = Screen.PrimaryScreen.Bounds.Height 
     Return intX & " × " & intY 
End Function 

Jak zmienić bieżącą rozdzielczość ekranu - solution

Powiązane problemy