У меня есть legacy приложение, к-е написано таким образом, что после себя оставляет иконку в трее. Рабочий процесс построен таким образом что пользователи запускают это приложение несколько раз на дню и к обеду в трее пасется 5-к беспризорных иконок.
Изменить исходное приложение не преставляется возможным.
Появилась идея написать watchdog application к-е будет работать на фоне и убирать эти иконки по мере их появления.
(простоя проверка — если иконка в трее есть, а приложение не работает — чистить).
Есть какие нить идеи как это реализовать на .NET? на не .NET ?
20.11.08 00:54: Перенесено модератором из '.NET' — AndrewVK
Здравствуйте, Igor Sukhov, Вы писали:
IS>У меня есть legacy приложение, к-е написано таким образом, что после себя оставляет иконку в трее. Рабочий процесс построен таким образом что пользователи запускают это приложение несколько раз на дню и к обеду в трее пасется 5-к беспризорных иконок. IS>Изменить исходное приложение не преставляется возможным. IS>Появилась идея написать watchdog application к-е будет работать на фоне и убирать эти иконки по мере их появления. IS>(простоя проверка — если иконка в трее есть, а приложение не работает — чистить). IS>Есть какие нить идеи как это реализовать на .NET? на не .NET ?
Гм, иконка я так понимаю как бы "висит" в трее, но если на нее навести мышкой — то исчезает?
Здравствуйте, Igor Sukhov, Вы писали:
IS>я опасался такого ответа, но ... но зато есть готовый код — спасибо. хорошо то что не часто придется мышой возить.
Ну, небольшой конфуз пользователей оттого, что мышка "убегает" — это ничего? И что за код такой, где мышкой управляют с помощью "MousePlay"? )) Я бы посоветовал найти окошко трея и поиграться с ним, посылая разные события, например WM_PAINT или еще какие.
Здравствуйте, Pavel M., Вы писали:
PM>Здравствуйте, Igor Sukhov, Вы писали:
IS>>я опасался такого ответа, но ... но зато есть готовый код — спасибо. хорошо то что не часто придется мышой возить.
PM>Ну, небольшой конфуз пользователей оттого, что мышка "убегает" — это ничего? И что за код такой, где мышкой управляют с помощью "MousePlay"? )) Я бы посоветовал найти окошко трея и поиграться с ним, посылая разные события, например WM_PAINT или еще какие.
У себя в проекте "прибираемся", вызывая Shell_NotifyIcon c NIM_DELETE — windows (2к, ХР) не проверяет, какой процесс у нее это попросил. Так что остается только узнать ИД иконки.
Здравствуйте, Pavel M., Вы писали: PM>Ну, небольшой конфуз пользователей оттого, что мышка "убегает" — это ничего? И что за код такой, где мышкой управляют с помощью "MousePlay"? )) Я бы посоветовал найти окошко трея и поиграться с ним, посылая разные события, например WM_PAINT или еще какие.
по идее, достаточно WM_MOUSEMOVE.
Пропадание иконок при пощевеливании мышью связано с тем, что експлорер пытаестся транслировать сообщения WM_MOUSEMOVE в заказавшее приложение. Как только он получает отлуп от SendMessage, связанный с разрушением окна, на которое зарагистирован callBack, он считает иконку мертвой и удаляет её.
(А вовсе не трактует получение hover в tray area как команду "приберись", как это понял автор кода по ссылке).
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.