Страница: 1 |
Всем по привету! Как быстро и качественно изменить разрешение телевизера средствами VB (API)?
kakogo televizora ? Rubin? Zenit? IZUMRUD? kupit noviy ! Всем У М Н Ы М парным большое спасибо за У М Н Ы Е ответы. Всех остальных прошу читать слово "телевизер" в моем вопросе как "устройство для вывода текстовой и графической информации, которая генерируется в процессе работы электронно-вычислительной машины." "устройство для вывода текстовой и графической информации, которая генерируется в процессе работы электронно-вычислительной машины." Если ты такие страшные слова знаешь, то на Ассемблере. Для тех кто попроще Изменение настроек дисплея При написании игрушек и различных приложений связаных с графикой очень хочется поменять разрешения монитора. И это достаточно легко сделать: "телевизер" ===> "телевизoр" Пожалуйста. Извиняться не надо. Просто вопрос смешной попался. Знаешь ли есть такие люди, которые подключают свои Соники/Панасоники к системнику. Они конечно знают, что никакой супер-пупер телевизор не сравнить с монитором. Но хочется людям. Ничего не поделаешь. Страница: 1 |
Вопрос: Изменение разрешения
Добавлено: 11.10.02 20:27
Автор вопроса: azuza
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #1
Добавлено: 11.10.02 20:30
Номер ответа: 2
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #2
Добавлено: 11.10.02 21:30
RECORD
Номер ответа: 3
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #3
Добавлено: 11.10.02 21:33
Номер ответа: 4
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #4
Добавлено: 11.10.02 21:45
Ага, проектор
Номер ответа: 5
Автор ответа:
azuza
Вопросов: 1
Ответов: 2
Профиль | | #5
Добавлено: 11.10.02 22:13
Номер ответа: 6
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #6
Добавлено: 11.10.02 22:33
Declare Function ChangeDisplaySettings Lib "user32.dll" Alias "ChangeDisplaySettingsA"_ (lpDevMode As Any, ByVal dwFlags As Long) As Long
С помощью этой функции появляется возможность изменить разрешение и количество цветовых разрядов.
Данная функция содержит набор параметров:
lpDevMode – новые настройки для монитора (структура DevMode ) возможно использование значений:
dmBitsPerPixe
dmDisplayFlags
dmDisplayFrequency
dmPelsWidth
dmPelsHeigh
dwFlags – способ изменения настроек, если здесь не установить ничего, то настройки будут изменены во время выполнения вызова этой функции, а информация об изменении не будет сохранена вообще.
Набор параметров:
* CDS_NORESET – все изменения будут сохранены в реестре Windows, но сами вступят в силу только после перезагрузки компьютера
CDS_RESET– параметры настройки изменяются по ходу выполнения, без перезагрузки системы.
*CDS_GLOBAL – настройки будут установлены для всех пользователей системы (если их несколько)
CDS_FULLSCREEN – установка полноэкранного режима, но эту установку нельзя сохранить вообще.
CDS_TEST– режим проверки монитора, для установления совместимости устройства с устанавливаемыми параметрами.
Для параметров отмеченных * нужно определить CDS_UPDATEREGISTRY= &H1 – обновление содержимого реестра
Функция возвращает следующие значения:
DISP_CHANGE_SUCCESSFUL –Изменение настроек прошло успешно
DISP_CHANGE_RESTART – необходимо перезапустить систему
DISP_CHANGE_BADPARAM – присутствует недопустимый параметр
DISP_CHANGE_FAILED – режим не поддерживается драйвером устройства
DISP_CHANGE_BADMODE - режим не поддерживается устройством
DISP_CHANGE_NOTUPDATED – запись в реестр не может быть осуществлена (характерно для Windows NT)
Также, при использовании этой функции полезно использовать другую функцию, определяющуу возможности устройств и драйверов:
Declare Function EnumDisplaySettings Lib "user32.dll" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As String, ByVal iModeNum As Long, lpDevMode As DevMode) As Long
iModeNum – получение информации о текущем режиме или из реестра (ENUM_CURRENT_SETTINGS
ENUM_REGISTRY_SETTINGS)
lpDevMode – определяется то, что собственно хочется получить ( значения те же, что в ChangeDisplaySettings)
Пример использования этих функций:
На форму (frmTest) разместите кнопку cmdCDS, добавте следующий код:
----в код формы---
Private Sub CmdCDS_Click()
MyDevMode.dmSize = Len(MyDevMode)
BackVal = EnumDisplaySettings(vbNullString, ENUM_CURRENT_SETTINGS, MyDevMode)
MyDevMode.dmPelsWidth = 1024
MyDevMode.dmPelsHeight = 768
BackVal = ChangeDisplaySettings(MyDevMode, CDS_TEST)
If BackVal <> DISP_CHANGE_SUCCESSFUL Then
msgbox"Не могу установить такое разрешение!",16,"Ошибка!"
Else
BackVal = ChangeDisplaySettings(MyCevMode, CDS_UPDATEREGISTRY)
Select Case BackVal
Case DISP_CHANGE_SUCCESSFUL
msgbox"Нjвые установки применены!",64,"Ура!"
Case DISP_CHANGE_RESTART
dim iMsg as integer
iMsg = msgbox ("Можно перезагрузить?",36 ,"Перезагрузка!")
Select Case iMsg
case vbYes
Shell(‘%systemDir%/rundll32.exe user32,ExitWindows’) ‘Еще один
Номер ответа: 7
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #7
Добавлено: 11.10.02 22:39
Номер ответа: 8
Автор ответа:
azuza
Вопросов: 1
Ответов: 2
Профиль | | #8
Добавлено: 15.10.02 19:17
Спасибо за нормальный ответ CyRax'у. Извиняюсь за некорректно поставленный вопрос. Тема закрыта.
Номер ответа: 9
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #9
Добавлено: 15.10.02 19:38