Я хочу открыть всплывающую подсказку с помощью службы Windows. Я могу сделать это в Windows Forms. Можно ли использовать службу Windows?
Подсказка всплывающей подсказки с использованием службы Windows C#
Ответы (2)
Я реализовал эту службу раньше и использовал именованный канал. В основном вы создаете два приложения.
- Проекты службы Windows, которые действуют как сервер именованных каналов.
- Приложение winforms со значком в трее, всплывающей подсказкой и клиентом Named Pipe.
Служба Windows отправляет сообщения подключенным клиентам, которые могут быть несколькими пользователями в системах, на которых запущено приложение winforms.
Приложение winforms прослушивает сообщения в канале. Как только сообщение придет, вы можете заставить воздушный шар всплыть.
Вот классный тестовый проект: https://www.codeproject.com/Tips/492231/Csharp-Async-Named-Pipes
Удачного кодирования!
Не напрямую. Служба Windows не запускается в сеансе пользователя, она запускается в своем собственном специальном «Сеансе службы». Подсказки, которые отображаются в этом сеансе, не отображаются на рабочем столе пользователя.
Обычно способ обойти это - иметь вторую программу, которая запускается с логином пользователя и не отображается на панели задач. Эта программа использует некоторую форму IPC (например, WCF) для связи со службой, после чего служба может сообщить вспомогательной программе, чтобы она отображала уведомление по мере необходимости.