How can I show a Notification Area Balloon and Icon from a Windows Service?

Ryan R picture Ryan R · Jun 1, 2011 · Viewed 20.3k times · Source

I have a Windows Service that is always running when the user starts their workstation. This Windows Service is critical and I would like to show a Balloon Notification in the Notification Area when certain things happen such as the Service Stops, Starts, Restarts etc.

For example:
enter image description here

Also, is there a way to show a Notification Area Icon for my Windows Service?

Answer

Matt Davis picture Matt Davis · Jun 1, 2011

The days of Windows services interacting directly with the desktop are over, so you have to find another way.

What I have done is create a normal WinForms application that includes a NotifyIcon. The behavior of this application mimics that of Task Manager, such that it can be hidden from the task bar and only visible in the system tray. If I right-click the system tray icon, I get a menu. If I double-click the icon, the application window is shown.

To facilitate the communication between the WinForms application and the Windows service, I use WCF. Specifically, I use Juval Lowy's Publish-Subscribe Framework, which works really well for this kind of scenario. See my answer here for more details.

Hope this helps.