purebasic.info

PureBasic forum
Текущее время: Сб июл 21, 2018 8:05 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Функция ExamineScreenModes() убила винду
СообщениеДобавлено: Сб фев 13, 2016 9:01 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 630
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
Винда ХР, РВ 541
Полученные с помощью этой функции данные, оказались смертельными для винды.
Сначала заметил, что одно из разрешений не масштабируется, именно одно из списка, начал проверять остальные, и одно из низких разрешений переключилось в чёрный экран и так всё и зависло, перезагрузка не помогла, получаю всё тот же чёрный экран и целую пачку мышиных курсоров, судя по курсорам разрешение включилось, и очень похоже что винда работает, вот только чёрный экран ни чего не даёт сделать.
Какие точно разрешения так работают, не помню, просто шёл подряд по списку.

В общем к хрюнделю в гости пришёл пушной зверёк. :D


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Функция ExamineScreenModes() убила винду
СообщениеДобавлено: Сб фев 13, 2016 1:55 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11206
Благодарил (а): 4 раз.
Поблагодарили: 421 раз.
Про безопасный режим ничего не слышал?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Функция ExamineScreenModes() убила винду
СообщениеДобавлено: Вс фев 14, 2016 10:03 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 630
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
Пётр, речь не об этом, речь о том, что функция возвращает хрен знает что.

А винду починил, когда начал трезво мыслить вспомнил про клавишу F8 на старте, зашёл под ВГА.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Функция ExamineScreenModes() убила винду
СообщениеДобавлено: Вс фев 14, 2016 12:25 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11206
Благодарил (а): 4 раз.
Поблагодарили: 421 раз.
newJS писал(а):
функция возвращает хрен знает что
Она возвращает то что поддерживает видеокарта. Но не факт что эти разрешения поддерживает монитор.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Функция ExamineScreenModes() убила винду
СообщениеДобавлено: Пн фев 15, 2016 7:00 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 630
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
Пётр писал(а):
Но не факт что эти разрешения поддерживает монитор.

И как тут выкрутиться?
В настройках самой винды нет таких разрешений, значит винда как то откинула лишние, как получить только реально работающие разрешения?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Функция ExamineScreenModes() убила винду
СообщениеДобавлено: Пн фев 15, 2016 8:58 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6327
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Есть API EnumDisplaySettings
Функция EnumDisplaySettings извлекает информацию о графических режимах для устройства отображения.
Код:
1
2
3
4
5
6
7
8
9
10
 
lpdev.DEVMODE\dmSize = SizeOf(DEVMODE)
i=0
While EnumDisplaySettings_(0,i,@lpdev) ; 0 текущий монитор
 If lpdev\dmDisplayFrequency>1
   Debug "Режим № "+Str(i)+"="+ lpdev\dmPelsWidth + "x"+lpdev\dmPelsHeight +":"+lpdev\dmBitsPerPel +"@"+lpdev\dmDisplayFrequency +"Hz"
 EndIf
 i+1
 Wend
 



Как видно из описания информация должна быть для любого устройства, включая несколько мониторов.
Но лично у меня возвращаются уже совсем экзотические! Хотя если глянуть в lpdev\ достаточно много всего интересного.
Пуриковский ExamineScreenModes выдает именно то, что написано в свойствах экрана->параметры

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Функция ExamineScreenModes() убила винду
СообщениеДобавлено: Ср фев 17, 2016 6:35 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 630
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
kvitaliy писал(а):
Пуриковский ExamineScreenModes выдает именно то, что написано в свойствах экрана->параметры

В настройках винды в половину меньше, чем выдаёт эта функция, и в настройках нет того смертельного разрешения.
Функция EnumDisplaySettings выдала листинг ещё больше чем ExamineScreenModes.

Так что вопрос остаётся, как получить только то, что в настройках?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB