huh-muh: Как создать гаджет под Windows 7

huh-muh: Как создать гаджет под Windows 7 Гаджет

Gadget.xml

Вся мета информация о нашем гаджете должна храниться в файле с названием gadget.xml:

Main.html

Собственно, в этом файле можно писать, все что угодно, также вы можете использовать JavaScript (jQuery, например), CSS, изображения и т.д.
Для публикации RSS в HTML был использован соответствующий сервис, в результате получился такой вот файл:

Из чего состоит гаджет для windows 7?

Как правило, простейший состоит из 2-х файлов:

  1. html файл (gadget.html) – в этом файле описан внешний вид и его функциональность.
  2. xml файл (gadget.xml)   – конфигурационный файл или еще его
    называют файл манифеста, который включает в себя всю информацию о
    гаджете и его настройках.

Как создать гаджет под windows 7

На самом деле всё подробно расписано

здесь

. Я даже сподобился написать простенький таймер ^_^

Оказалось, что эти самые гаджеты в простейшем случае представляют из себя обычные приложения html. Это самое приложение зазиповано в архив (только расширение у этого архива — не .zip, а .gadget) В архиве должен быть файл gadget.xml примерно такого вида:

<?xml version="1.0" encoding="utf-8" ?>
<gadget>
<name>funTimer</name>
<namespace>CnRuFeed.Gadgets</namespace>
<version>0.0.0.1</version>
<author name="huh-muh">
<info url="huh-muh.blogspot.com" />
</author>
<copyright>© 2021</copyright>
<description>Timer test</description>
<hosts>
<host name="sidebar">
<base type="HTML" apiVersion="1.0.0" src="funTimer.htm" />
<permissions>Full</permissions>
<platform minPlatformVersion="1.0" />
</host>
</hosts>
</gadget>

Соответственно, всё самое интересное заключено в файле funTimer.htm:


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Fun timer</title>
</head>

<script type="text/javascript">
function resizeGadget()
{
if(System.Gadget.docked == true)
{
mainBody.style.width = 250;
mainBody.style.height = 80;
}
else
{
mainBody.style.width = 250;
mainBody.style.height = 80;
}
}

function settingsClosed(event)
{
if(event.closeAction == event.Action.commit)
{
loadSettings();
}
}

var initDate;

function loadSettings()
{
var caption = System.Gadget.Settings.read("caption");
captionLabel.innerHTML = (caption != "") ? caption : "(укажите название таймера)";

var initValue = System.Gadget.Settings.read("init");
initValue = initValue.replace(new RegExp(" ",'g'),".").replace(new RegExp(":",'g'),".");
var dateParts = initValue.split(".");
if (dateParts.length == 5)
initDate = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0], dateParts[3], dateParts[4]);
else
if (dateParts.length == 3)
initDate = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
else
initDate = new Date();
timerLabel.innerHTML = "" initDate;
}

var progressTimer;
function timerTick()
{
var currDate = new Date();
var dateDiff = Math.abs(currDate.getTime() - initDate.getTime()) / 1000;
var dd = Math.floor(dateDiff / (24*3600));
var hh = Math.floor( (dateDiff - dd*24*3600) / 3600 );
var mm = Math.floor( (dateDiff - dd*24*3600 - hh*3600) / 60 );
var ss = Math.floor( dateDiff - dd*24*3600 - hh*3600 - mm*60 );
timerLabel.innerHTML = "" dd "д " hh "ч " mm "м " ss "с";
progressTimer = setTimeout("timerTick()", 1000);
}

document.onreadystatechange = function()
{
if(document.readyState=="complete")
{
System.Gadget.settingsUI = "Settings.htm";
System.Gadget.onSettingsClosed = settingsClosed;
System.Gadget.onUndock = resizeGadget;
System.Gadget.onDock = resizeGadget;
loadSettings();
progressTimer = setTimeout("timerTick()", 1000);
}
}

</script>

<body id="mainBody">
<center><g:text id="captionLabel" width="100%" align="center">Loading...</g:text>
<br/>
<g:text id="timerLabel" width="100%" align="center">Loading...</g:text></center>
</body>

</html>

Для редактирования настроек программы будет использоваться файл Settings.htm:

<html xmlns="http://www.w3.org/1999/xhtml">

<script type="text/javascript">

document.onreadystatechange = function()
{
if(document.readyState=="complete")
{
mainBody.style.width = 300;
mainBody.style.height = 180;
captionBox.value = System.Gadget.Settings.read("caption");
timerBox.value = System.Gadget.Settings.read("init");
}
}

System.Gadget.onSettingsClosing = function(event)
{
if (event.closeAction == event.Action.commit)
{
System.Gadget.Settings.write("caption", captionBox.value);
System.Gadget.Settings.write("init", timerBox.value);
event.cancel = false;
}
}

</script>

<body id="mainBody">
Название таймера:
<br />
<input id="captionBox" type="text" maxlength="50" width="100%" />
<br />
Точка отсчета (дд.мм.гггг[ чч:мм]):
<br />
<input id="timerBox" type="text" maxlength="16" width="100%" />
</body>
</html>

Создаём гаджет своими руками. сами. без опыта и без особых затрат.

Энтузиасты часто собирают средства на Kickstarter и других краудфандинговых ресурсах. Россияне ищут деньги в основном на связанные с созданием программного обеспечения проекты, а новыми устройствами занимаются люди из США, Азии или даже из Западной Европы. Хотя у нас немало талантливых специалистов, разрабатывать электронику в России сложно из-за отсутствия доступа к ключевой элементной базе. Где взять комплектующие? Как собрать прототип и заставить его работать? Кто сможет дать правильный совет и указать на ошибки (которые обязательно будут)? В Америке и Азии с этим проще — там есть развитые сообщества технарей, а почта работает быстро. Отечественные энтузиасты, что называется, варятся в собственном соку. Комплектующие приходится заказывать в Китае и стоят они, зачастую, недешево. А скорость работы «Почты России» давно стала излюбленной темой анекдотов у любителей интернет-покупок в зарубежных магазинах.

Гаджет:  Цифровая медицина и гаджеты здоровья

Краудфандинг пользуется огромной популярностью у энтузиастов — потенциальные пользователи и заинтересованные в успехе проекта компании охотно выделяют средства разработчикам. Создателям основанного на чипсете MediaTek MT6572 наручного смартфона Omate TrueSmart удалось собрать на Kickstarter более миллиона долларов. К моменту запуска кампании по сбору денег у разработчиков уже был работающий прототип устройства.

Часы Omate TrueSmart на MediaTek MT6572

Инициатива тайваньской компании-чипмейкера MediaTek должна объединить усилия любителей и профессионалов, стерев границы между ними максимально простым и изящным способом. Запущенная в сентябре 2021 года программа MediaTek Labs помогает сфокусированным на интернете вещей и носимой электронике людям со всего мира создавать совместные проекты в области гаджетов. К началу декабря в ней уже зарегистрировалось несколько тысяч пользователей, примерно пятая часть из которых живет в России и Восточной Европе. MediaTek Labs обеспечивает разработчиков всей необходимой информацией и ключевыми компонентам для проектирования конечных устройств. А самое главное — она позволяет собрать интернациональную команду таких же энтузиастов, чтобы создать законченный продукт, запустить его в серийное производство и зарабатывать на этом деньги. Здесь же можно найти инвестора, притом, без долгого краудфандинга.

Компания MediaTek является вторым по величине в мире разработчиком чипсетов для смартфонов: в 2021 году в мире было продано более 200 миллионов смарфонов с чипсетами от MediaTek. В сегменте решений для цифровых телевизоров у MediaTek второе место в мире, а на рынке электронной начинки для приводов оптических дисков (CD/DVD/Blu-ray) — первое в мире. Ее компоненты используются в продуктах Sony, LG, Motorola, Lenovo, Meizu и HTC.

Проблему с доступом к необходимым электронным компонентам в MediaTek Labs решают с помощью аппаратного комплекта разработчика (Hardware Developer Kit), который можно приобрести за $79. В состав LinkIt One входит система-на-чипе MediaTek Aster (MT2502), основанная на ядре ARM7 и оснащенная модулями Wi-Fi (MT5931) и GPS (MT3332), а также встраиваемая операционная система реального времени LinkIt. В HDK есть средства для добавления сенсоров и другие аппаратные решения, необходимые создателям электронной начинки умных часов или, скажем, квадрокоптера.

Плата LinkIt One с чипсетом MediaTek Aster из HDK: с помощью этого конструктора любой желающий может создать собственный гаджет

Регистрация в MediaTek Labs бесплатна. На форумах программы вы можете получить консультацию у инженеров MediaTek (!) и сторонних разработчиков. Сайт labs.mediatek.com позволяет свободно скачать созданный в MediaTek комплект ПО (Software Development Kit), предназначенный для разработки встраиваемого софта, а также получить всю необходимую техническую документацию. Например, информацию о поддерживаемых электронных компонентах — обидно будет заказать какой-нибудь датчик движения и узнать, что он не совместим с прочей электронной начинкой вашего продукта.

Гаджет:  Злата Осипова – Гаджеты — слушать детские песни

Но самое главное, MediaTek Labs поможет вам собрать команду разработчиков: на форумах присутствуют программисты, инженеры, специалисты в области моделирования и т. д. и т. п. Обратиться с предложением о сотрудничестве можно к кому угодно, даже если у вас есть только идея проекта и полностью отсутствуют технические знания. Место жительства участников команды не имеет значения — лишь бы они владели английским на уровне, достаточном для обсуждения технических вопросов. Хотя в MediaTek Labs есть сотни людей из России и стран СНГ, так что серьезных языковых проблем не будем, даже если иностранными языками вы не владеете.

В MediaTek Labs зарегистрированы не только энтузиасты, но и производители компонентов, телекоммуникационные компании, дизайн-хаусы (их профиль – помощь с промдизайном и инжинирингом), производители датчиков и других комплектующих. Есть даже инженеры из отделов разработки компаний-производителей устройств — смартфонов, планшетов и носимой электроники. Все эти люди внимательно следят за происходящим на форумах, активно ищут таланты и, если обратят внимание на вашу разработку, то команде помогут всеми доступными способами, вплоть до организации процесса серийного производства. Это важный момент: многие энтузиасты занимаются созданием устройств только для себя, без перспективы заработка. Участие в MediaTek Labs позволяет заработать, если вам удастся создать действительно интересный и перспективный продукт.

Аналогов экосистемы для разработчиков MediaTek Labs в мире просто нет. По крайней мере, нам о них ничего неизвестно. Samsung, Intel и Qualcomm предлагают подобные программы, но ни одна из этих компаний не ориентируется на энтузиастов и разработчиков-одиночек. Им интересно сотрудничать или с крупными вендорами, или со студентами специализированных вузов, или с профессионалами, имеющими большой опыт работы и портфолио проектов. Создать же полностью открытый, доступный любому желающему (вне зависимости от опыта и знаний — пусть их даже не будет вообще!), а, самое главное, бесплатный «техно-инкубатор» в области портативной электроники пока догадались только в MediaTek. Какие проекты родятся внутри этого виртуального коворкинга «железячников» пока неизвестно — программа только-только стартовала — но мы наверняка скоро о них услышим.

Этап №1

Для начала надо создать директорию, в которой будет находиться . По мнению специалистов Microsoft, очень удобным является директория разделенная точкой. Например: first.gadget. Но на самом деле не имеет значения, как будет называться папка. Главное чтобы было понятно.

Разместить папку можно где угодно, но при создании и тестировании удобней всего размещать в системных папках. Например:

Этап №2

Затем создаем файл манифеста в директории .

Гаджет:  Интересные статьи о смартфонах, планшетах и других гаджетах | AppTime

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

Пример файла gadget.xml:

Элемент <xml> Обязательный.

Декларация XML определяет версию XML и шифрование символов,
используемых в документе. Этот специфический документ соответствует
спецификации XML 1.0 и использует набор символов UTF-8 (unicode).

Свойства:

Version. Обязателен. Значение – 1.0.

Encoding. Обязателен. Значение – UTF-8.

Элемент <gadget> Обязательный.

У элемента <gadget> нет атрибутов, но он включает в себя элементы потомков, которые и определяют сам гаджет.

Обязательные элементы:

Элемент <name> представляет собой имя пользователя, которое
отображается в описании гаджета на странице панели управления Windows
Sidebar и непосредственно на самой боковой панели.

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

Действительные строки версии являются формой
major.minor.revision.build. Каждый из этих номеров (или восемь символов)
может содержать от 0 до 4 цифр, между значениями 0 и 9.

Элемент <hosts> является контейнером для одного или более элементов <hosts>.

Элемент потомок:

Обязательный. Элемент <host> идентифицирует приложение, которое принимает . Его элементы потомки определяют поведение гаджета для специфического хостового приложения.

Атрибуты:

Name. Обязательный. Необходимое значение – ‘sidebar’

Элемент <base> обеспечивают Sidebar файлом type и обязательной информацией версии API для управлением гаджета.

Атрибуты:

Type. Обязательный. Необходимое значение – ‘HTML’

Src. Обязательный. Указывает, какой файл должен загружать Sidebar для выполнения приложения.

apiVersion. Обязательный. Необходимое значение – 1.0.0

Необходимое значение – ‘Full’

Элемент <platform> указывает боковой панели минимальную версию Windows, которая может управлять приложением.

Атрибуты:

minPlatformVersion. Обязательный. Необходимое значение – ‘1.0’

Определяет графические элементы, которые отображаются на панели управления гаджетами

Атрибуты:

Src. Обязательный. Путь к графическому файлу.

Элемент <namespace> зарезервирован для будущего использования.

Элемент <author> отображает информацию о разработчике гаджета.

Атрибуты:

Name. Обязательный. Имя разработчика гаджета.

Элемент <info> отображает более подробную информацию о разработчике.

Атрибут:

URL. Обязательный. Ссылка на сайт разработчика.

Элемент <logo> определяет графический файл или иконку,
ассоциированную с разработчиком, которая отображается рядом с именем
автора на панели управления гаджетами.

Атрибуты:

Src. Обязательный. Путь к графическому файлу.

Элемент <copyright> отображает лицензионные права, которые
принадлежат разработчику. Может содержать любую строку символов.

Значение элемента <description> отображает для пользователя в Gadget Gallery диалоговое окно.

Элемент <icons> определяет размер и графический файл иконки
гаджета. Графическим файлом может быть любой файл, который
поддерживается GDI 1.0.

Атрибуты:

Height. Опциональный. Целое число, которое указывает высоту, в пикселях, иконки графического файла.

Width. Опциональный. Целое число, которое указывает ширину, в пикселях, иконки графического файла.

. Src. Обязательный. Путь к графическому файлу.

Этап №3

https://www.youtube.com/watch?v=CrWN8cSk-9s

Создадим html файл в директории с гаджетом. Пример файла:

Оцените статью
GadgetManiac
Добавить комментарий