Введение в платформу гаджетов

  1. Вступление
  2. Что нового для гаджетов в Windows 7
  3. Управление гаджетами
  4. Показать гаджеты на рабочем столе
  5. Разработка гаджетов
  6. отладка
  7. Безопасность
  8. Манифест гаджета
  9. Поддержка HighDPI
  10. Элемент сценария и другие изменения API
  11. Программная установка
  12. События System.Gadget.onDock и System.Gadget.onUndock
  13. Методы System.Gadget.beginTransition и System.Gadget.endTransition
  14. Метод System.Shell.knownFolderPath

[Платформа / боковая панель гаджетов Windows доступна для использования в следующих версиях Windows: Windows 7, Windows Vista и Windows Server 2008. Она может быть изменена или недоступна в последующих версиях. ]

В этом разделе описана платформа гаджетов Windows. В нем обсуждается эволюция платформы гаджетов от боковой панели Windows Vista, различия между двумя платформами и то, что вам нужно знать при переходе гаджетов боковой панели на новую платформу гаджетов Windows.

Вступление

Боковая панель Windows, представленная как платформа для представления и разработки гаджетов в Windows Vista, поставляется как платформа гаджетов Windows в Windows 7.

Гаджеты - это мини-приложения, основанные на платформе XML, HTML, CSS и сценариях, которые предоставляют функциональные возможности и информацию, полученную из локальных приложений или веб-служб.

В качестве платформы для презентаций боковая панель Windows Vista представляет собой полупрозрачную запираемую панель на рабочем столе, которая выступает в качестве «контейнера» для размещения, отображения и управления гаджетами.

Заметка

Контейнер используется здесь свободно, потому что гаджеты можно легко перетаскивать с боковой панели на рабочий стол Windows.

Цели разработки для платформы гаджетов подчеркивают обратную совместимость с гаджетами боковой панели Vista, более тесную интеграцию с рабочим столом Windows и уменьшение визуального беспорядка благодаря усовершенствованному и унифицированному интерфейсу. Для достижения этих целей рабочий стол Windows заменяет боковую панель как контейнер гаджетов и уровень управления. Гаджеты никогда не были физически ограничены боковой панелью, поэтому удаление этого среднего уровня визуально упрощает платформу и поддерживает полную функциональность гаджетов боковой панели.

Что нового для гаджетов в Windows 7

Платформа гаджетов предоставляет несколько улучшений для разработчиков гаджетов.

Заметка

Основная цель Gadget Platform - обеспечение обратной совместимости с Windows Vista. Реализация любой из следующих модификаций в существующих гаджетах на боковой панели не препятствует их работе в Windows Vista.

Управление гаджетами

Прежде всего, улучшения в гаджетах Windows - это изменения в управлении гаджетами.

Ушел концепция боковой панели как контейнера. Вместо этого гаджеты теперь размещаются и отображаются на рабочем столе. Элемент гаджетов в контекстном меню рабочего стола обеспечивает доступ к галерее гаджетов, чтобы вы могли выбирать, устанавливать и использовать гаджеты. Это изменение упрощает управление гаджетами, оптимизирует и унифицирует общий интерфейс рабочего стола и устраняет необходимость в специальных настройках боковой панели. Обратите внимание, что все гаджеты по-прежнему принадлежат процессу sidebar.exe.

На следующем снимке экрана сравнивается контекстное меню боковой панели и контекстное меню рабочего стола Windows 7.

Показать гаджеты на рабочем столе

Теперь доступна новая опция рабочего стола, позволяющая скрывать или отображать все гаджеты путем остановки и запуска процесса sidebar.exe. В контекстном меню рабочего стола нажмите команду « Просмотр» и снимите флажок « Показать гаджеты рабочего стола» . Отключив параметр « Показать гаджеты для рабочего стола» , вы сможете получить преимущества энергосбережения на своем ноутбуке, а также решить проблемы конфиденциальности для людей, которые используют свои компьютеры для презентаций.

Заметка

Расположение и настройки экрана восстанавливаются для каждого гаджета при перезапуске процесса sidebar.exe.

Параметр « Показать гаджеты рабочего стола» в контекстном меню рабочего стола Windows 7 показан на следующем снимке экрана.

Параметр « Показать гаджеты рабочего стола» в контекстном меню рабочего стола Windows 7 показан на следующем снимке экрана

Еще одним улучшением производительности для Windows 7 является управление процессом sidebar.exe. В Windows Vista боковая панель запускает несколько экземпляров процесса sidebar.exe. В Windows 7 запускается только один экземпляр процесса sidebar.exe. Этот отдельный экземпляр не запускается до тех пор, пока гаджет не будет добавлен на рабочий стол, не будет запущен инструмент выбора гаджетов или не начнется новый сеанс пользователя с существующими гаджетами на рабочем столе. Если средство выбора гаджетов закрыто и гаджеты не добавлены на рабочий стол или последний гаджет удален с рабочего стола, процесс sidebar.exe автоматически останавливается.

Разработка гаджетов

Для разработчиков гаджетов платформа гаджетов Windows 7 обеспечивает значительные улучшения, не нарушая функциональность гаджетов Windows Vista.

отладка

Чтобы помочь разработчикам отлаживать гаджет-приложения, в Windows 7 был добавлен следующий раздел реестра, который позволяет отображать ошибки сценариев во время выполнения.

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Sidebar] "ShowScriptErrors" = dword: 00000001

Безопасность

Существенных изменений в модели безопасности платформы гаджетов по сравнению с боковой панелью Windows Vista нет. Дополнительные инструкции по написанию безопасных гаджетов см. В разделе Проверьте свой гаджет ,

В следующей таблице описаны места установки гаджета, а также разрешения на запись и выполнение для этих мест.

Гаджеты пользователей% localappdata% \ Microsoft \ Windows Sidebar \ Gadgets Все пользователи могут писать в это местоположение. Общие гаджеты% programfiles% \ Windows Sidebar \ Shared Gadgets Только члены группы «Администраторы» могут писать в это местоположение. Гаджеты для Windows% programfiles% \ Windows Sidebar \ Gadgets Это расположение зарезервировано для гаджетов Microsoft. [!Заметка]
Даже если члены группы «Администраторы» могут писать в это местоположение, сторонние гаджеты никогда не следует устанавливать здесь. Только гаджеты, которые записываются в это местоположение TrustedInstaller, распознаются как гаджеты Windows; все остальные гаджеты считаются пользовательскими гаджетами.

Манифест гаджета

Манифест гаджета - это файл XML, который содержит общую информацию о конфигурации и представлении гаджета. Эта информация отображается в галерее гаджетов в виде сведений о гаджете и разработчике, а также функциональных или информационных значков. Каждый пакет гаджетов должен включать манифест.

Поддержка HighDPI

Чтобы платформа гаджетов могла поддерживать возможности с высоким разрешением, в манифест был добавлен элемент <autoscaleDPI>. Он содержит логическое значение true или false (по умолчанию). Если установлено значение true , функция адаптивного масштабирования движка рендеринга Internet Explorer включена. Функция масштабирования масштабирует текст и изображения для этого гаджета в соответствии с настройками DPI текущего пользователя. Если для <autoscaleDPI> задано значение false или оно не объявлено в манифесте, функция масштабирования не включена.

Ниже приведен пример манифеста с узлом <autoscaleDPI />, установленным в значение true .

&lt;? xml version = "1.0" encoding = "utf-8"?>> gadget> <name> Пример гаджета </ name> <namespace> windows.sdk </ namespace> <версия> 1.0.0.0 </ version> < имя автора = "Microsoft"> <info url = "msdn.microsoft.com" /> <logo src = "logo.png" /> </ author> <copyright> & amp; # 169; Корпорация Microsoft. </ Copyright> <description> Пример гаджета для боковой панели. </ Description> <icons> <icon height = "48" width = "48" src = "icon.png" /> </ icons> <hosts> < host name = "sidebar"> <! - Новый узел autoscaleDPI -> <autoscaleDPI> true </ autoscaleDPI> <base type = "HTML" apiVersion = "1.0.0" src = "sample.html" /> <разрешения > Полный </ permissions> <platform minPlatformVersion = "1.0" /> <defaultImage src = "icon.png" /> </ host> </ hosts> </ gadget>

Элемент сценария и другие изменения API

В этом разделе описываются изменения основного набора элементов сценариев и API для платформы гаджетов.

Программная установка

IDesktopGadget новый интерфейс оболочки Windows Это выставляет RunGadget метод, который позволяет программно добавлять установленный гаджет на рабочий стол Windows 7.

Заметка

Гаджет должен быть установлен перед вызовом этого метода для успешного возврата метода.

Этот метод можно вызвать во время установки приложения, которое включает в себя поддерживающий гаджет в составе пакета установки, например, при установке приложения календаря, которое включает в себя гаджет, отображающий предстоящие встречи.

Важный

Приложения не должны звонить RunGadget не спрашивая у пользователя разрешения. Если в качестве разрешения выбран флажок, этот флажок должен быть снят по умолчанию.

это RunGadget Нельзя использовать метод для добавления уже запущенного гаджета. Если экземпляр гаджета по указанному пути уже запущен, этот метод возвращает SCHED_E_ALREADY_RUNNING .

RunGadget Этот метод можно использовать для добавления общих гаджетов или гаджетов Windows. В следующей таблице описаны места установки для гаджетов, добавленных с помощью метода RunGadget, и разрешения для этих мест.

Тип гаджета Расположение Разрешения Общие гаджеты% programfiles% \ Боковая панель Windows \ Общие гаджеты Только члены группы «Администраторы» могут писать в это местоположение. Все гаджеты, расположенные в этой папке, могут быть добавлены с помощью этого метода. Гаджеты Windows% programfiles% \ Windows Sidebar \ Gadgets В эту папку могут писать только члены группы «Администраторы». Единственные распознаваемые гаджеты - это те, которые установлены TrustedInstaller. Следовательно, с помощью этого метода могут быть добавлены только те гаджеты, которые установлены TrustedInstaller.

Если GadgetPath преобразуется в гаджет, который не является общим гаджетом или гаджетом Windows, возвращается E_ACCESSDENIED.

События System.Gadget.onDock и System.Gadget.onUndock

В гаджетах боковой панели Windows Vista можно связать события onDock и onUndock с обработчиками событий, чтобы эффект визуального перехода автоматически использовался, когда гаджет был пристыкован к боковой панели или отсоединен от нее.

Пример визуального перехода, который определен в обработчиках событий стыковки и отстыковки, показан на следующем снимке экрана.

Пример визуального перехода, который определен в обработчиках событий стыковки и отстыковки, показан на следующем снимке экрана

Поскольку в Windows 7 нет боковой панели, связанной с платформой гаджетов, нет событий присоединения и отсоединения. Однако для обеспечения обратной совместимости для аналогичного эффекта можно использовать один и тот же код. Сначала определите обработчик событий стыковки или отстыковки. Когда указатель мыши находится над гаджетом или гаджет получает фокус, отображается дополнительный значок. Нажмите на этот значок, чтобы вызвать событие стыковки (меньший размер) или событие отстыковки (больший размер). Гаджет выполняет визуальный переход, как показано на следующих снимках экрана.

Гаджет выполняет визуальный переход, как показано на следующих снимках экрана

В следующем примере кода показано, как работает один и тот же код для подключения обработчиков событий закрепления и отсоединения для боковой панели и платформы гаджетов.

// Ширина и высота гаджета. var gadgetWidth = 130; var gadgetHeight = 108; // Сумма для масштабирования гаджета, когда он закреплен или отстыкован. var scaleDocked = 1; var scaleUndocked = 2; // Объявляем обработчики событий dock и undock. System.Gadget.onDock = CheckDockState; System.Gadget.onUndock = CheckDockState; // ------------------------------------------------ -------------------- // Проверить состояние дока гаджета; установить стиль гаджета. // imgBackground - это значение атрибута 'id' для элемента // g: background. // ------------------------------------------------ -------------------- function CheckDockState () {var oBackground = document.getElementById ("imgBackground"); var oBody = document.body.style; if (System.Gadget.docked) {oBody.width = gadgetWidth * scaleDocked; oBody.height = gadgetHeight * scaleDocked; oBackground.src = "url (../ images / bg_docked.png)"; txtDocked.className = 'gadgetDocked'; txtDocked.innerText = 'Docked'; } else {oBody.width = gadgetWidth * scaleUndocked; oBody.height = gadgetHeight * scaleUndocked; oBackground.src = "url (../ images / bg_undocked.png)"; txtDocked.className = 'gadgetUndocked'; txtDocked.innerText = 'Undocked'; }}

Методы System.Gadget.beginTransition и System.Gadget.endTransition

В Windows 7 стандартное поведение перехода для событий onDock и onUndock - плавное изменение размера или переход от одного визуального состояния к другому.

Поскольку никаких других параметров поведения перехода в платформе гаджетов не существует, вызовы методов System.Gadget.beginTransition и System.Gadget.endTransition игнорируются.

Метод System.Shell.knownFolderPath

Для Windows 7 этот метод может принять KNOWNFOLDERID GUID.

Для получения дополнительной информации о разработке гаджетов для платформы Windows Gadget см. Документацию по Боковая панель Windows ,

Lt;?
Encoding = "utf-8"?