Nofity User какое-то сообщение от службы Windows

Я создал службу Windows, которая получает информацию о соем из базы данных, и я хочу уведомить пользователя на основе информации, полученной из БД. Как я могу уведомить пользователя из службы Windows, используя уведомление в системном трее? Не могли бы вы показать мне пример (с использованием механизма IPC), чтобы получить возвращаемое значение метода, используемого в службе Windows, в уведомлении на панели задач? Заранее спасибо.


person Nazia    schedule 31.01.2012    source источник


Ответы (1)


Есть несколько таких вариантов:

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