Windows 7в вопросах и ответах |
FAQ, новости, статьи, обсуждения, общение |
15.10.2011→Внешний вид и персонализацияРазработка гаджетов для боковой панели Windows 7Впервые боковая панель появилась в Windows Vista. Главной и единственной её функцией являлась возможность запуска миниприложений, более известных под названием «гаджеты». Возможность использования гаджетов была добавлена в операционную систему для того, чтобы сделать работу с рабочим столом более удобной и функциональной, а их самостоятельная разработка не представляет особой сложности, особенно если вы знакомы с такими языками программирования, как DHTML, JavaScript и CSS. По-умолчанию в поставку Windows 7 входят гаджеты, которые могут следить за курсом акций, выводить на экран новости, прогноз погоды и прочие мелочи. Однако наиболее интересными для пользователя окажутся те приложения, которые предоставляют узко специализированную информацию, интересную именно ему и имеющие удобный для него вид (корпоративные или индивидуальные веб-сервисы). В этой статье мы рассмотрим процесс разработки гаджетов для боковой панели с использованием DHTML, JavaScript и CSS, а также немного углубимся в теорию: обсудим объектную модель и аспекты безопасности разработки. В качестве примера, мы сами создадим работающий гаджет, работающий с фото-сервисом фликр. Его кстати можно сразу скачать отсюда. Чтобы гаджет заработал, вам нужно зарегистрироваться и получить ключ API от Flickr. Этот ключ нужно будет ввести в третью строку исходного кода ShowMeLife.js. Прежде, чем начнём сами писать код давайте взглянем на мир разработки гаджетов. Платформа для гаджетовСразу надо уточнить, что есть три различных типа гаджетов (что может создать некоторую путаницу): гаджеты Windows Live, гаджеты боковой панели Vista/7 и гаджеты Windows SideShow. В этой статье мы рассмотрим лишь гаджеты для боковой панели. К сожалению, API этих трёх платформ на сегодняшний день не совместим, хотя Microsoft говорит, что работает над этим. В настоящий момент написание кросс-платформенного гаджета требует принятия некоторых компромиссов и грамотного планирования. Давайте в начале бегло рассмотрим все три платформы. Гаджеты боковой панелиГаджеты боковой панели устанавливаютcя на компьютер пользователя и их нельзя увидеть в меню ‘Пуск’. Гаджетами можно управлять через приложение Windows Sidebar. Как мы далее увидим, гаджеты боковой панели могут работать на рабочем столе или непосредственно в области боковой панели. Боковая панель в свою очередь может или постоянно занимать некоторое пространство рабочего стола, или скрываться другими окнами. Гаджеты создаются с помощью HTML, JavaScript и объектной модели System.Gadget. Windows 7 идёт в комплекте с определённым набором гаджетов, который может быть легко расширен с помощью галереи Windows Live или соответствующего раздела этого сайта. Боковая панель, запущенная на машине локально, имеет ряд преимуществ перед своими веб-коллегами. Например, такие гаджеты могут получить доступ к некоторым локальным ресурсам компьютера. Гаджеты Windows LiveГаджеты Windows Live ограничены домашней страницей или пространством Windows Live. Их также можно создавать с помощью комбинации из HTML и JavaScript. Вместо боковой панели эти гаджеты используют веб-браузер. Они тоже доступны в галерее Live. Гаджеты Windows Live работают в отдельном <iframe> на странице, в которой они запускаются. Это не относится к сайтам Microsoft и сайтам её партнёров. Эти гаджеты не имеют доступа к DOM или cookie live.com и работают на базе более сложных настроек безопасности чем гаджеты боковой панели. Гаджеты SideShowГаджеты SideShow передают информацию вспомогательным дисплеям платформы Windows SideShow. Такие дисплеи можно увидеть на клавиатурах, сумках для ноутбуков, пультах дистанционного управления и сотовых телефонах. Идея состоит в том, что пользователь может просмотреть важную информацию, не включая ноутбук или не открывая крышку раскладного телефона. В отличие от предыдущих двух платформ гаджеты SideShow разрабатываются на языке C++. Эти гаджеты не имеют собственного пользовательского интерфейса, но передают данные платформе SideShow. Платформа в свою очередь отображает информацию на экране. На сегодняшний день таких аппаратных решений не много и они не сильно распространены. Работа гаджетов боковой панелиГаджет представляет собой файл с расширением .gadget. Файл .gadget сжимается в архивный формат ZIP или CAB. Когда пользователь откроет файл .gadget, боковая панель извлечёт ресурсы гаджета, находящиеся внутри.
После извлечения файлов из архива, они копируются в каталог пользователя. Полный путь до каталога с гаджетами — %UserProfile%\AppData\Local\Microsoft\Windows Sidebar\Gadgets, где %UserProfile% — корневой каталог пользователя, например C:\Пользователи\w7q. Когда установка гаджета закончится, он появится в галерее боковой панели. Пользователь теперь сможет добавить этот гаджет на рабочий стол двойным щелчком мыши или просто перетащив его мышкой. Удаление гаджета приведёт к удалению его файлов с диска. Как разработчики, мы можем написать свой гаджет прямо в соответствующем каталоге или использовать инструмент MSBuild, чтобы скопировать гаджет в папку во время сборки. Давайте взглянем на гаджет, который мы будем создавать. Гаджет «Show Me Life»
Что мне нравится в этом подходе, так это то, что при использовании Flickr, вы никогда не сможете предсказать какая картинка появится следующей. Например, при просмотре фотографий с тегом «Россия» вы будете наблюдать фотографии памятников и популярных достопримечательностей в России. Наш гаджет будет состоять из:
Давайте отметим основные теги в gadget.xml: Код HTML Гаджет и скрипт System.Gadget Мы используем объекты System.Gadget для того, чтобы «наладить общение» нашего гаджета и боковой панели. Например, мы можем сделать пользовательский интерфейс с настройками. Этот интерфейс появится как только пользователь щёлкнет по маленькому ключу возле гаджета. HTML код окна с настройками находится в файле Settings.htm и нам нужно сделать так, чтобы System.Gadget.settingsUI ссылался на этот файл как показано в листинге кода выше. Мы также можем настроить прилипание к боковой панели (когда пользователь подводит гаджет к боковой панели) и отстыковку (когда пользователь отводит гаджет от боковой панели). Мы привязываем эти события с помощью функции resizeGadget. Настройки <script type=»text/javascript» src=»Settings.js»></script> <link href=»Settings.css» rel=»stylesheet» type=»text/css» /> Так мы выделили текстовое поле для ввода поискового запроса. Боковая панель уже сама дополнит интерфейс кнопками Ок и Отмена. Код только загружает и сохраняет результаты поиска. System.Gadget.onSettingsClosing = function(event) Здесь можно увидеть как работает чтение и запись объекта System.Gadget.Settings. Эти методы можно использовать, чтобы сохранять и восстанавливать простые пары имя-значение во время работы гаджета. Важно знать, что эти настройки работают только, когда гаджет присоединен к боковой панели. Другими словами, если пользователь убирает гаджет из боковой панели, любые настройки сбрасываются и в следующий раз, когда пользователь вновь вернёт гаджет на боковую панель, все настройки вернуться к значению по умолчанию. Когда пользователь закрывает окно с настройками, гаджет сможет прочитать эти настройки с помощью onSettingsClosed. Следующий код содержится в файле ShowMeLife.js. function loadSettings() Вставляем картинки Flickr в гаджет if(this.photos != null) Другие особенности гаджета
Эти элементы обеспечивают новые модели поведения скриптов и специальные свойства, которые мы можем использовать в боковой панели. Наример, элемент g:Image может использовать новый протокол (gImage). Протокол gImage автоматически создаёт эскиз основного изображения. Например, если мы ссылаемся на изображение с помощью using src=»Картинка.png», используется всё изображение полностью. Если же мы ссылаемся на изображение с помощью src=»gImage:///Картинка.png», появится миниаютра изображения. Протокол gImage можно использовать только на локальной машине, то есть подгружать изображение с удалённого сервера нельзя. Полную информацию об этих трех элементах можно изучить на сайте MSDN. Упаковываем гаджет После всех этих манипуляций гаджет должен отобразиться в галерее боковой панели. Гаджеты и локализация Гаджеты и безопасность Сейчас все пользователи уделяют большое внимание безопасности использования разных программ. Если мы хотим распространить наш гаджет в сети, то нужно позаботиться о безопасности. Гаджеты будут работать в Explorer в «Local Machine Zone». Эта зона не появляется на вкладке безопасности Internet Explorer, но в действительности существует как неявная пятая зона безопасности. Администраторы могут редактировать настройки в этой зоне, изменяя записи в реестре. Настройки безопасности для всех пользователей компьютера находятся в реестре HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0. По умолчанию сценарии в зоне на локальной машине могут создавать локальные элементы управления ActiveX и загружать данные через домены, однако гаджеты не могут загружать и устанавливать новые элементы управления ActiveX. Гаджеты ни в коем случае не должны работать с правами администратора. Для получения доступа к информации о локальной машине гаджет должен использовать API Windows Management and Instrumentation (WMI). WMI — мощный инструмент и может выдать подробную информацию об устройствах и программных процессах. С User Account Control гаджет не может на полную использовать API WMI из-за правовых ограничений. Эпилог Гаджеты — замечательный механизм, способный предоставить пользователю нужную информацию через простые приложения, работающие в Windows Sidebar. Гаджеты легко создавать, особенно если вы знакомы с языком разметки HTML и языком программирования сценариев. Возможности гаджетов постоянно расширяются, поскольку Microsoft улучшает платформу для миниприложений. И еще раз, получившийся гаджет можно скачать отсюда. Поделиться в соц. сетяхКомментариев: 3Мож есть где гаджет Nod32
Tima
# 26.10.2011 в 18:43
GPUObserver36c — на моем ноуте двойной видеоадаптер AMD M880G with ATI Mobility Radeon HD 4250 и AMD Radeon HD 6470M с 1280 МБ памяти а этот гаджет пишет что видео НЕТ
СРБ
# 25.01.2012 в 16:36
Задайте вопрос или оставьте отзыв: |
|
Почему может не устанавливаться?