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

旧时模样 提交于 2019-12-18 04:55:17

问题


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?


回答1:


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.




回答2:


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).




回答3:


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.

ServiceController myService = new ServiceController("YOUR Service Name");
myService.ExecuteCommand(123); // do something;

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.



来源:https://stackoverflow.com/questions/6204634/how-can-i-show-a-notification-area-balloon-and-icon-from-a-windows-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!