Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Восстановление иконки в трее после сбоя системы

02.03.2010 | Категория: Образ мышления: Assembler | Автор: ManHunter
Если ваше приложение создает и использует свою иконку в трее, то в обязательном порядке надо обрабатывать ситуацию, когда по какой-либо причине произошел сбой и перезапуск Explorer'а. В этом случае перерисовывается панель задач, рабочий стол, системный трей со значками и т.д., и если вы не вернете свою иконку в трей, то она "потеряется". При аварийном перезапуске Explorer'а всем окнам (HWND_BROADCAST) системой отсылается сообщение TaskbarCreated. Особенность этого сообщения в том, что оно не имеет постоянного значения идентификатора, и его значение должно быть получено функцией RegisterWindowMessage. В описаниях этой функции сказано, что она используется для регистрации уникального системного сообщения, но почему-то нигде не указано, что если такое сообщение уже зарегистрировано в системе, то функцией возвращается его существующий идентификатор. Это полезное свойство мы и будем использовать.
  1. ; Сегмент данных
  2. ...
  3. szTBC        db 'TaskbarCreated',0 ; Имя сообщения
  4. restore_msg  dd ?                  ; Идентификатор сообщения TaskbarCreated
  5. ...
Значение идентификатора лучше всего получать на этапе инициализации окна или при запуске приложения, но в любом случае до того, как будет выполняться его обработка.
  1. ; Сегмент кода
  2.         ...
  3.         ; Зарегистрировать сообщение TaskbarCreated
  4.         invoke  RegisterWindowMessage,szTBC
  5.         mov     [restore_msg],eax
  6.         ...
После того, как у вас есть идентификатор сообщения, его можно использовать в обработчике сообщений окна вашего приложения. И, как только оно будет получено, следует просто обновить иконку вашего приложения в трее и выполнить какие-нибудь другие действия по восстановлению работоспособности после перезапуска Explorer'а.
  1.         ...
  2.         ; Сообщение TaskbarCreated?
  3.         mov     eax,[msg]
  4.         cmp     eax,[restore_msg]
  5.         je      .wmrestore
  6.         ...
  7. .wmrestore:
  8.         ; Восстановить иконку в трее
  9.         invoke  Shell_NotifyIcon, NIM_ADD, node
  10.         jmp     .processed
  11.         ...
В этом коде подразумевается, что структура node (NOTIFYICONDATA) была заполнена ранее и содержит всю необходимую информацию об иконке в трее.

Читать статью целиком »
Просмотров: 7680 | Комментариев: 4

Сервис аккредитации PHP-разработчиков

28.02.2010 | Категория: Web-мастеру и не только | Автор: ManHunter
Чуть больше года назад натолкнулся на интересный сайт для web-программистов inPHP.org. Вот что пишут про него сами его создатели:


Сервис inPHP.org представляет собой удобный, надежный и высокотехнологичный инструмент, полезный как для IT-разработчиков, так и для работодателей. В основе проекта заложена идея обеспечения подтверждения компетенции программистов в реальном времени для любого пользователя сети интернет. Общий диапазон уровня навыков PHP-разработки, в рамках системы, условно разбит на 8 уровней (где 1-й уровень - самый простой, а 8-й наиболее сложный). Кроме того, существуют специализированные уровни, призванные охарактеризовать узкие профессиональные качества разработчика. Любой зарегистрированный участник имеет возможность, последовательно проходя тесты семи уровней, подтвердить собственную квалификацию и передать ссылку на персональную страницу в системе заинтересованным лицам (заказчикам, работодателям). Более того, после достижения седьмого уровня, участник получает возможность пройти аккредитацию сотрудником сервиса на высший уровень компетенции. Лица, заинтересованные во взаимовыгодном сотрудничестве с профессиональными PHP-разработчиками, в свою очередь, получают возможность подтверждения профессиональной пригодности того или иного кандидата просто изучив его персональную страницу в сервисе.


Смысл аккредитации в том, что надо пройти несколько бесплатных тестов по 10 вопросов в каждом, все тесты с возрастающей сложностью и разной тематикой. Если дан хоть один неправильный ответ, то повторная пересдача разрешена только через три часа. Кроме бесплатных тестов есть три дополнительных теста для специализированных аккредитаций, доступ к которым дается после оплаты (по 10 баксов за каждый), но это исключительно по желанию. Недавно в закладках снова наткнулся этот сайт, а там, оказывается, добавился новый 7-й уровень тестирования. Теперь я тоже в тридцатке хайлевелов на этом сайте :)

Просмотров: 4320 | Комментариев: 6

Готовим лазанью по-сицилийски

26.02.2010 | Категория: А еще я туда ем! | Автор: ManHunter

Лазанья по-сицилийски

Лазанья - одно из самых популярных блюд в Италии. Видов лазаньи великое множество: с мясом, овощами, курицей, грибами, и даже с морепродуктами. У меня сегодня будет сицилийский вариант лазаньи с мясным фаршем. Заодно обновлю купленную недавно форму для выпечки.

Читать статью целиком »
Просмотров: 9025 | Комментариев: 10

Поздравляю с Днем защитника Отечества!

23.02.2010 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Днем защитника Отечества!

Всех защитников Отечества, а особенно сотрудников подразделений специального назначения, поздравляю с 23 февраля! Это праздник настоящих мужчин, патриотов своей Родины, не боящихся трудностей и выбравших благородный путь служения отчизне. Счастья вам, крепкого здоровья, успехов во всех начинаниях и всегда только мирного неба над головой!

Инженер саперного отделения ОМОН
капитан милиции - ManHunter


Просмотров: 4575 | Комментариев: 13

Концерт групп "Leaves' Eyes" и "Atrocity" в клубе "XO"

20.02.2010 | Категория: Жизнь в оффлайне | Автор: ManHunter

Концерт групп "Leaves' Eyes" и "Atrocity" в клубе "XO"

Сразу две группы мирового масштаба - "Leaves' Eyes" и "Atrocity" - выступают в клубе "XO". Жалко, что не было возможности услышать Лив Кристин живьем в составе "Theatre Of Tragedy", зато теперь можно будет насладиться ее голосом в сольном проекте. Цена значения не имеет, второго такого концерта в жизни может и не быть.

Читать статью целиком »
Просмотров: 4074 | Комментариев: 8

01 ... 379 380 381 382 383 384 385 ... 429
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.11 сек. / MySQL: 2 (0.0422 сек.) / Память: 4.5 Mb
Наверх