Я создал службу Windows, которая получает информацию о соем из базы данных, и я хочу уведомить пользователя на основе информации, полученной из БД. Как я могу уведомить пользователя из службы Windows, используя уведомление в системном трее? Не могли бы вы показать мне пример (с использованием механизма IPC), чтобы получить возвращаемое значение метода, используемого в службе Windows, в уведомлении на панели задач? Заранее спасибо.
Nofity User какое-то сообщение от службы Windows
Ответы (1)
Есть несколько таких вариантов:
- Сокеты: (не слишком сложно написать, есть проблемы с брандмауэром). Вы можете найти образцы почти везде.
- Внешняя форма WinForm: (самый простой способ, имеет проблемы с безопасностью и может быть заблокирован некоторыми антивирусными приложениями). Просто создайте форму winForm с возможностью перехода в область уведомлений Windows, а затем скажите службе запустить исполняемый файл. .
- Именованные каналы: (вероятно, самое сложное, но рекомендуемое решение) Вот пример проекта кода.
- Другие приемы, например: Создайте скрытый проект winform (ShowInTask=false) и поместите его в автозагрузку. предоставьте ему объект FileSystemWatcher и заставьте его отслеживать определенный файл, который служба создает или удаляет, чтобы сигнализировать winform.
person
Bizhan
schedule
01.02.2012
Привет Бизз, спасибо за упомянутые варианты. Нужно ли нам иметь NamedPipeServerStream в службе Windows и NamedPipeClientStream в другом приложении, которое получает информацию из NamedPipeServerStream . Я новичок в этом. Не могли бы вы объяснить мне подробно?
- person Nazia; 01.02.2012
Извините, я новичок в WCF, но я думаю, что если вы зададите другой вопрос, относящийся к
NamedPipes
и WCF
, вы найдете лучшие ответы.
- person Bizhan; 03.02.2012