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:
Also, is there a way to show a Notification Area Icon for my Windows Service?
Our new (and free) ServiceTray utility will let you control your service from a tray icon. It will also show pop-up/balloon notifications when it detects that your service has changed state (started-> stopped, etc).
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.
If you just want to send a simple command to your Windows service you can send it a message from your user app in the following way.
If you override the OnCustomCommand method in you class the extends ServiceBase. You could then use this command to trigger the service to do somthing like reload a config file, or switch to some state.