Основное окно
Разметка основного окна ничем не отличается от разметки любой другой веб-страницы. Вдобавок нам предоставляют несколько исключительно гаджетовских тегов. Для задания фона гаджета, используется тег
g:background
. Любое содержимое, размещенное в данном элементе будет фоновым для всего основного окна.
Я не стал делать задний фон гаджету, с помощью параметра opacity=«0» фон стал абсолютно прозрачным.
Тело страницы довольно простое верхний div служит для отображения статуса гаджета, позволяет увидеть, сколько минут осталось до обновления данных, а также поддерживает ручное обновление. Нижний div будет содержать в себе список серверов.
Gadget.xml
Мы укажем в манифесте минимально нужную информацию.
Место в системе
Вообще, данная утилита одна из самых бесполезных, которые когда-либо были внедрены в Windows. Пользователь, который привык к свой машине, уже практически с закрытыми глазами знает, что и где расположено, и сайдбар лишь мешает. Кроме того, этот системный процесс может занимать довольно большое количество оперативной памяти и системного времени, которые могли бы быть израсходованы на более полезные вещи.
Чтобы оценить, насколько сильно «сжирает» sidebar.exe ресурсы системы, достаточно перейти в «Диспетчер задач» и найти во вкладке «Процессы» его среди остальных. В зависимости от того, какими виджетами снабжен наш сайдбар, цифры могут варьироваться от нескольких килобайт до пары-тройки мегабайт. Если эти значения составляют гигабайты – то тут уже другая проблема, но об этом ниже.
Процесс расходует слишком много памяти
Как известно, болеют не только люди, но и компьютеры. Подхватить вирус в Интернете довольно легко. Чаще всего вредоносные программы маскируются под файлы и процессы с расширением .exe. И sidebar.exe – не исключение. Это один из самых излюбленных «доноров» вредоносного программного обеспечения.
Чтобы проверить свой компьютер, запустите поиск по системе файла sidebar.exe. Настоящий файл от Microsoft лежит в папке C:Program Files, а вредоносный в C:Windows или C:Windowssystem32. Срочно обновите ваш Антивирус, и он без особого труда справится с этой компьютерной заразой.
Сестра, скальпель
Гаджет – это обыкновенный zip-файл, который внутри себя хранит нужную информацию для развертывания. Сам гаджет – это набор HTML, CSS, JavaScript файлов, изображений и т.д.
Гаджет состоит из нескольких файлов с условными названиями:
Для управления поведением, видом гаджета,, хранения данных используется специальный объект System.Gadget.
Темная сторона, люк
Самый главный файл – JavaScript. Сразу оговорюсь, alert и confirm в гаджетах не работают. Для отладки гаджета, можно воспользоваться Visual Studio, но для этого нужно выполнить два хитрых действия. Прежде всего, включить отладчик JavaScript в Internet Explorer
Добавить в нужном месте кода гаджета строку:
debugger;
и перезапустить гаджет.
Мы объявляем две глобальных переменных, которые отвечают за время в минутах для обновления данных в гаджете, для меня оптимально 30 минут, а также счетчик отсчета оставшихся минут до обновления
var updateInterval = 30;
var updateMinutes = updateInterval;
Функция init содержит действия для инициализации гаджета, мне в данном случае было нужно установить прозрачность гаджета на 40%, чтобы он не перекрывал полностью кусочек рабочего стола.
function init() {
System.Gadget.Settings.write("PrivateSetting_GadgetOpacity", 40);
}
Функция запуска самого мониторинга, которая обновляет список серверов с их статусом, устанавливает интервал обновления данных, таймера в главном окне и так же добавляет обработчик события для ручного обновления статуса серверов.
function startMonitoring() {
init();
updateList();
setInterval(updateList, updateInterval * 1000 * 60);
setInterval(updateTimer, 1000 * 60);
statusLink.onclick = function() {
updateList();
}
}
Добавление обработчика на нажатие происходит в данном случае двумя способами:
element.onclick = function(){}
$(element).get(0).onclick = function(){}
Продвинутые способы в гаджетах не работают:
element.attachEvent('onclick', function(){})
$(element).bind('click', function(){})
Для обновления самого таймера маленькая функция updateTimer, которая каждую минуту рассчитывает сколько времени осталось до обновления.
function updateTimer() {
updateMinutes = updateMinutes == 0 ? updateInterval : updateMinutes - 1;
$('#statusLink').html('Update in ' updateMinutes ' m.');
}
И наконец, обновление списка серверов, для возвращенных данных я использую JSON, вид ответа примерно такой:
[{«ip»:«***.45.**.60»,«lastHitTime»:«2009-09-06 00:07:24»,«runningTasks»:«1»}]
Для получения самих данных – getJSON. Вы можете использовать и AJAX, он прекрасно работает в гаджетах. Прежде всего, используя getJSON мы можем отлаживать код в браузере, не добавляя его в гаджет, AJAX нам такое сделать не позволит. В зависимости от загрузки сервера, я закрашиваю ячейку разным фоном.
Удаляем сайдбар
Если вам надоело постоянное подвисание системы из-за этого процесса, то вы, скорее всего, задались вопросом: как удалить sidebar.exe? Мы подготовили два самых популярных пути решения.
Первый – наиболее простой, и провернуть его можно в два счета. Но у него есть один существенный недостаток – после каждой перезагрузки системы виджеты вновь возвращаются на свои места и продолжают портить нам жизнь. Рассмотрим, как быстро избавиться от sidebar.exe:
- Нажимаем сочетание клавиш Ctrl Alt Del – это вызовет «Диспетчер задач»;
- Ищем среди других процессов sidebar.exe;
- Нажимаем на нем правой кнопкой мыши и выбираем «Отключить».
Все! Теперь система должна начать работать быстрее. Подумайте: если вы решили насовсем отключить sidebar.exe, что это влечет за собой? Насколько выгодно будет избавляться от этих гаджетов? Решились? Тогда приступаем:
- Открываем меню «Пуск» и выбираем «Выполнить…»;
- В открывшемся окне прописываем «msconfig» и нажимаем «Ок»;
- Перед нами открывается окно, в котором переходим на вкладку «Автозагрузка»;
- Находим наш сайдбар и снимаем с него пометку.
Эти действия приведут к отключению автоматического запуска процесса при загрузке операционной системы. Не рекомендуем отключать незнакомые параметры, так как это может повлечь за собой серьезные ошибки в работе ОС.