К основному контенту

Гаджеты для Windows 7

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

Данный пост описывает один из способов распространения самодельных гаджетов пользователям.

До этого момента, даже не предполагал, что создавать гаджеты для рабочего стола Windows так просто. Идея написать этот пост пришла мне в голову из-за того, что разобравшись за час в том, как сделать свой виджет, я "уткнулся" в проблему создания некоего файла установки для него. Здесь я опишу, как я её решил.

Итак, обо всем по порядку.

Для создания гаджета рабочего стола Windows 7 необходимо всего лишь быть знакомым с созданием статических веб-страниц. А если Вы знаете даже JavaScript, то для вас это предоставит большие возможности для мыслей и действий. Материалов по созданию гаджетов достаточно, правда они на английском языке. Ну, тому, для кого это проблема, лучше наверное сначала подучить английский язык, т.к. без него всё равно сейчас никуда.

Вкратце, гаджет - это веб-страница, помещенная в определенную папку Windows. Удивлены? Я тоже. Как и в любой веб-странице, связка HTML/CSS описывает интерфейс, JavaScript - поведение. Кроме того, обязательно вкладывается специально сформированный файл XML, описывающий этот гаджет: в нем имя гаджета, разработчика, описание, ссылки, основные настройки. За подробностями о создании гаджетов пройдите по ссылкам:

1. Пошаговое руководство по созданию гаджетов

2. Рекомендации

3. Хелп по вопросам, которые у Вас возникнут во время генерации супер-идеи по созданию гаджета, захватывающего мир

Далее, создав свой гаджет, необходимо положить его в специфическую папку, откуда она и "подхватится" менеджером гаджетов Windows. В Windows 7 это папка "C:\Users\[Пользователь]\AppData\Local\Microsoft\Windows Sidebar\Gadgets\" Если всё сделано правильно, запустив менеджер гаджетов ("правая кнопка на рабочем столе Windows 7" - "Гаджеты"), Вы должны увидеть иконку с именем своего гаджета.

Отлично. Поигрались с ним. Как же теперь за-submit-ить (ну, или за-deploy-ть), свое приложение-гаджет своим друзьям? Стандартное для Windows решение: получение файла Имя.gadget . Для этого архивируем папочку с гаджетом, например, WinRar'ом (7zip, Zip, и т.д.), после чего, переименовываем его расширение в "gadget". Итак, у Вас получился файл типа "Имя.gadget". Запустив этот файл двойным щелчком, Вы увидите, что он даже начинает исполняться менеджером Гаджетов Windows: появляется диалог установки.

Отсюда началась уже чисто моя персональная история. К сожалению, установить гаджет мне не удалось, т.к. для этого необходимо, чтобы гаджет был "подписан" центром сертификации. То бишь, Ваш гаджет должен иметь сертификат безопасности. Для процесса подписи гаджета используется утилита signtool из пакета Windows SDK, который качается бесплатно с сайта Microsoft (процесс подписи). Сам сертификат необходимо купить у одного из Центров Сертификации. Умельцы на форуме говорят, что достаточно иметь самоподписной сертифкат, который даже не нужно покупать. Действительно, такой сертификат легко делается на Вашем домашенем компьютере, но в моем случае это также не сработало.

Итак, стандартные способы для меня не работали. Покупать сертификат ради бесплатного гаджета тоже не хотелось. Поэтому я создал свой ClickOnce инсталлятор, который устанавливает гаджеты в нужные папки. Я НЕ ЗНАЮ, насколько легитимный этот способ. Но он работает. К тому же, по-моему, файл установки гораздо лучше непонятного "Имя.gadget". Опять же, создать инсталлятор очень просто. Для этого я создал проект Setup с помощью Microsoft Visual Studio. В нем открыл File System Editor, с помощью которого положил в папку Application Folder папку со всеми файлами гаджета. После чего возник тонкий момент. Для папки Application Folder необходимо указать путь установки в свойстве Location Folder. По умолчанию, это Program Files, но нам нужна специфичная папка "\Users\[Имя юзера]\AppData\Local\Microsoft\Windows Sidebar\Gadgets\" Порывшись в интернете, нашел описания переменных среды окружения Windows 7, в которых нашел и нужную мне переменную: LocalAppDataFolder. Но здесь будьте осторожны, имена переменных чувствительны к регистру, а на многих сайтах их описывают в верхнем регистре, поэтому инсталлятор Ваш путь будет интерпретировать неправильно. Итак, для гаджетов Windows 7, используйте путь "[LocalAppDataFolder]\Microsoft\Windows Sidebar\Gadgets\"

Дальше все просто, строим проект, запускаем Setup.exe или Setup.msi, проходим все шаги установки. После "финиша" запускаем менеджер гаджетов и видим свой гаджет, который теперь можно перетащить на рабочий стол и работать, без всяких ограничений. Никаких подписей и оплат.

Такой вот он, мой опыт создания виджетов.

А вот и то, что у меня получилось:

1. Гаджет для простой вставки текста, например, который нужно временно запомнить: задача, заметка, ссылка...

2. Гаджет в виде моей визитной карточки =).

P.S. Раньше я выкладывал всё на своём сайте, но спроса особого нет, поэтому не вижу смысла в продолжении поддерживать свой сайт. Займусь чем-нибудь поинтереснее. Если кому-то программа всё таки интересна, пишите - вышлю установщик.










Комментарии

Популярные сообщения из этого блога

Делаем себе бесплатный VPN на Amazon EC2

Читать этот пост в Telegraph. Другие посты в канале в Telegram. Кто только не расписывал уже пошаговые инструкции по этой теме. Однако, время идёт, ПО меняется, инструкции нуждаются в обновлении, а люди в современной России всё больше нуждаются в применении VPN. Я собираюсь описать все шаги для создания бесплатного сервера на Amazon EC2 с операционной системой Linux и необходимые команды для настройки VPN сервера на нём. Чтобы не повторяться о деталях, которые были много раз описаны на русскоязычных и англоязычных ресурсах, по ходу статьи я просто приведу целую кипу ссылок, где можно почерпнуть необходимую информацию, а где информация устарела - опишу подробнее что нужно сдеать. В итоге, сервер будет доступен для вас из любой точки планеты, с любой операционной системы, и бесплатно (с определёнными ограничениями по трафику). Шаг первый - Регистрируемся на Amazon AWS Нужно зайти на сайт https://aws.amazon.com/ru и сразу перейти к Регистрации, нажав одноимённую кнопку. При р

В помощь программисту: инструкции по работе с Ubuntu сервером

Программистам чаще приходится писать код и заботиться о его чистоте, правильных абстракциях в коде, корректных зависимостях и прочих сложностях профессии. При этом, настройка и обслуживание серверов, хоть и связанная область - это отдельный навык, необходимый не каждому, и помнить о котором в деталях сложно. Поэтому, я делаю ряд микро-инструкций, которыми буду пользоваться и сам, когда необходимо. Это не статьи, а пошаговые помощники, которые я буду дополнять и наполнять по мере надобности. Делаем бесплатный VPN на Amazon EC2 Создание ключей SSH Подключение к серверу через SSH Передача файла с Linux сервера наWindows машину Делаем VPN сервер на Ubuntu 20.04 используя OpenVPN и EasyRSA  Отображение GUI с Linux сервера на Windows машине

Выбираем все плюсы из трех парадигм Entity Framework

Между парадигмами разработки с Entity Framework (Code First, Model First, Database First) я выбрал промежуточную, потому что ни одна меня не устраивала полностью. В Code First меня радуют чистые POCO классы, но не устраивает невозможность моделирования базы. В Database First и Model First мне не нравится генерация EDMX и другого всего лишнего. Таким образом, я нашел для себя такое решение: 1. Я моделирую схему в любой удобной программе (тут любая внешняя программа моделирования, генерирующая SQL Server-совместимые скрипты генерации базы) Рис. Смоделированная схема БД. 2. Создаю базу в SQL Management Studio 3. Делаю Reverse Engineering базы в POCO классы (как в Code First) с помощью плагина Entity Framework Power Tools Рис. Установленный плагин для Reverse Engineer. Рис. Вот так делается Reverse Engineer базы данных в POCO классы. Рис. Результат генерации POCO классов на основе базы данных: папочка Models с готовым контекстом, классами объектов и маппинг-классами.