Страница: 1 | 2 |
Вопрос: Свойства экрана
Добавлено: 09.01.06 15:47
Автор вопроса: Mihalыch | ICQ: 373-509-101
Знаю как узнать разрешение экрана, а как узнать текущую глубину цвета и частоту обновления?
Ответы
Всего ответов: 17
Номер ответа: 1
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #1
Добавлено: 09.01.06 16:44
Глубину цвета нашел, осталось узнать частоту обновления.
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 10.01.06 23:46
у реестре
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 10.01.06 23:57
как обычно – через DDraw
Номер ответа: 4
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #4
Добавлено: 11.01.06 14:06
2HACKER, а где в реестре что-то не могу найти
2Noviks (AgentFire), а что это вроде не ф-я. Где взять как пользоваться?
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 11.01.06 14:50
F3
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 11.01.06 14:54
or Regmon...
Не ленимся! напрягаем пальцы!
Номер ответа: 7
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #7
Добавлено: 11.01.06 15:03
2HACKER, про поиск в реестре я знаю. Искал 85 (установленная у меня частота обновления экрана), потом 85 Гц, не чего не нашел, искал слово Display, нашел много, но все не то. Реестр большой! Может, если не сложно, ткнешь меня носом в нужное место, и разойдемся миром (щютка кергуду), буду очень признателен!
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 11.01.06 16:52
пойщи resoluction, пойщи в яндексе, подумай головой где ж ещё оно может быть как не в реестре
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 11.01.06 16:55
хм... трабла кажись в том что на каждую видуху оно в разных местах хранит... какая у тебя видуха например?
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 11.01.06 17:04
http://www.xdev.ru/dxgp/rgd_forums_r.asp?forumid=2&themeid=411
Номер ответа: 11
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #11
Добавлено: 11.01.06 17:05
У меня GeForce PCX 5750, но если так тогда действительно проблема, прогу ведь не для себя делаю. Вообще проблема в том, что во время работы программы устанавливаю нужное мне разрешение, глубину цвета и частоту обновления, а после завершения работы нужно корректно вернуть все в зад. Кажется я нашел приемлемое решение.
Спасибо!
Номер ответа: 12
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #12
Добавлено: 11.01.06 17:21
или
http://programmingcpp.narod.ru/gamemode.htm
токо ненайду как её декларировать...
Номер ответа: 13
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #13
Добавлено: 16.01.06 10:06
Пардон что поздно встреваю и не гуляю по ссылкам - но разве старый добрый GetDeviceCaps уже не рулит?
Номер ответа: 14
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #14
Добавлено: 16.01.06 12:33
2LOL, вот так узнаю глубину цвета (качество цветопередачи), я уже писал что эту часть вопроса решил.
Private Const BITSPIXEL = 12
Private Declare Function CreateDC Lib "gdi32.dll" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32.dll" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Sub cmd1_Click()
Dim nDC As Long
Dim sBitsPixel As Integer
nDC = CreateDC("ISPLAY", vbNullString, vbNullString, 0)
sBitsPixel = GetDeviceCaps(nDC, BITSPIXEL)
End sub
В общем, проблему с частотой обновления экрана я уже решил ("в обход", но если ты знаешь, как с помощью GetDeviceCaps можно узнать енту частоту, буду признателен.
Номер ответа: 15
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #15
Добавлено: 16.01.06 13:22
Не особо умничая, перепишу твой код
Option Explicit
Private Const BITSPIXEL = 12
Private Const VREFRESH = 116
Private Declare Function CreateDC Lib "gdi32.dll" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32.dll" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Sub cmd1_Click()
Dim nDC As Long
Dim sBitsPixel As Integer
Dim RefreshRate As Long
nDC = CreateDC("ISPLAY", vbNullString, vbNullString, 0)
sBitsPixel = GetDeviceCaps(nDC, BITSPIXEL)
RefreshRate = GetDeviceCaps(nDC, VREFRESH)
End Sub
RefreshRate содержит текущее значение частоты обновления экрана.
VREFRESH Windows NT/2000/XP: For display devices: the current vertical refresh rate of the device, in cycles per second (Hz).
A vertical refresh rate value of 0 or 1 represents the display hardware's default refresh rate. This default rate is typically set by switches on a display card or computer motherboard, or by a configuration program that does not use display functions such as ChangeDisplaySettings.