Подтвердить что ты не робот

Получение разрешения экрана

Мне нужно изменить разрешение экрана, используя мое приложение.

Как сделать:

  • Прочитать текущее разрешение
  • Изменение его с помощью моего приложения, а затем возврат к текущему при выходе.

Спасибо, Фуркан

4b9b3361

Ответ 1

1) Как читать текущее разрешение экрана?

Получение текущего разрешения экрана легко и встроено в рамки без необходимости вникать в нечто вроде API GetSystemMetrics. Класс Screen содержит информацию обо всех устройствах отображения, подключенных к системе. Чтобы определить разрешение основного монитора, вы можете использовать что-то вроде:

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

Чтобы работать с несколькими мониторами, просмотрите свойство Screen.AllScreens, которое возвращает массив объектов Screen, соответствующих каждому из дисплеев, прикрепленных к системе. Затем вы можете определить (используя приведенный выше код) разрешение каждого из дисплеев, подключенных к компьютеру, путем прокрутки массива объектов Screen.

2) Как изменить текущее разрешение экрана из моего приложения VB.NET?

Изменение разрешения экрана немного сложнее. Прежде чем идти дальше, я предупреждаю вас, что приложение, настраивающее разрешение экрана пользователя, неожиданно и потенциально создает враждебную пользовательскую среду. Я знаю, что я не буду использовать приложение, которое менял бы разрешение экрана без разрешения, и я долго и долго думал бы об использовании того, что требовало от меня вообще этого. Если вы пытаетесь сделать заставку, возможно, вам будет лучше и проще делать то, что вы хотите. При этом это можно сделать из VB.NET, если вы хотите P/вызывать несколько функций из Windows API.

Самый простой способ, если вас беспокоит только один монитор, - это использовать функцию ChangeDisplaySettings, которая позволяет вам укажите графический режим отображения по умолчанию (только для основного монитора пользователя).

Чтобы обрабатывать случай с несколькими мониторами, вам необходимо использовать функцию EnumDisplayDevices для получения информации обо всех устройствах отображения подключен к компьютеру, и ChangeDisplaySettingsEx для изменения определенного экрана.

Откажитесь от pinvoke.net, чтобы объявить подписи вызовов Windows API в VB.NET. В результате поиска Google появился этот поток, хотя я не проверил пример кода, который они предоставляют.

Чтобы изменить разрешение экрана только во время работы вашего приложения, а затем восстановить его, когда пользователь покинет вашу программу, вы хотите сохранить текущие настройки экрана перед их изменением, а затем восстановить их (используя те же вызовы метода), когда ваше приложение завершает работу.

Ответ 2

Как получить текущее разрешение экрана

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

Как изменить текущее разрешение экрана - решение

Ответ 3

Но адаптация элементов управления к текущему разрешению экрана является целью программиста. Почему это изменит разрешение экрана хоста?