Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Объект screen в IE


Автор: developer2007 17.2.2010, 22:10
Приветсвую всех ява менов, нужна небольшая помощь.
Интересует как ява получает разрешение дисплея в осле, т.е. как заполняется в объекте screen width & height? Какая функция WinAPI для этого вызывается? Хочу возвращать в браузере любое разрешение.

Автор: Amphiluke 17.2.2010, 22:35
Вероятно, самая «изъезженная» функция GetSystemMetrics и используется
Код

width = GetSystemMetrics(SM_CXSCREEN);
height = GetSystemMetrics(SM_CYSCREEN);


Добавлено через 1 минуту и 1 секунду
Хотя, это лишь предположение, разумеется. Исходников IE я не видел.  smile 

Автор: developer2007 17.2.2010, 22:46
Ага, забыл добавить, я тоже так подумал вначале - только вот осёл не юзает эту функцию с этими параметрами (0 и 1) smile 

Автор: Amphiluke 17.2.2010, 23:03
А как вы это выяснили?
Возможно используется GetDeviceCaps, хотя выглядело бы это довольно странно, ИМХО.

Автор: developer2007 17.2.2010, 23:23
Хех, мы с тобой абсолютно одинаково мыслим - после того как я разобрался с GetSystemMetrics я пошёл с огнём и мечом на GetDeviceCaps, оказалось что она вообще не юзается smile 
Как я это выяснил? Да захватил GetSystemMetrics и сделал проверку параметра чтобы вернуть нечто иное, но запросов на ширину и высоту не было smile 
Лог в аттаче.

Добавлено через 3 минуты и 38 секунд
Продизасмил GetSystemMetrics - вызовов Native функций относящихся к определению параметров дисплея невидно, значит функция самодостаточна. Хммм, какие же ещё аналоги есть...

Автор: Amphiluke 18.2.2010, 00:00
Тема, по-моему, явно не для этой ветки форума... Сейчас придет 12345c и надаёт всем по шее.  smile

Мне кажется, стоит исходить из реализации интерфейса IHTMLScreen. Если верить MSDN, реализация содержится в библиотеке mshtml.dll. Можно просмотреть список импортируемых ею функций из др. системных библиотек... В частности, я уже нашел среди них и GetSystemMetrics, и GetDeviceCaps...

Добавлено через 14 минут и 20 секунд
Кстати, насчет реализации http://www.winehq.org/pipermail/wine-cvs/2009-December/062070.html. Эт так, информация к размышлению, что GetDeviceCaps все-таки может использоваться при определении атрибутов width и height объекта screen.

Автор: developer2007 18.2.2010, 07:52
Ага, буду рыть, я уже косился в сторону mshtml.dll

Автор: developer2007 19.2.2010, 01:00
Оказалось всё-таки GetDeviceCaps во всём виновата  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)