簡體   English   中英

如何顯示來自 Windows 服務的通知區域氣球和圖標?

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

我有一個 Windows 服務,當用戶啟動他們的工作站時它總是在運行。 此 Windows 服務至關重要,我想在發生某些事情(例如服務停止、啟動、重新啟動等)時在通知區域顯示氣球通知。

例如:
在此處輸入圖像描述

另外,有沒有辦法為我的 Windows 服務顯示通知區域圖標?

Windows 服務直接與桌面交互的時代已經結束,因此您必須另謀出路。

我所做的是創建一個包含 NotifyIcon 的普通 WinForms 應用程序。 此應用程序的行為模仿了任務管理器的行為,因此它可以從任務欄中隱藏,並且僅在系統托盤中可見。 如果我右鍵單擊系統托盤圖標,我會得到一個菜單。 如果我雙擊該圖標,則會顯示應用程序 window。

為了方便 WinForms 應用程序和 Windows 服務之間的通信,我使用 WCF。 具體來說,我使用Juval LowyPublish-Subscribe Framework ,它非常適合這種場景。 有關更多詳細信息,請參閱我答案。

希望這可以幫助。

我們新的(免費) ServiceTray 實用程序可讓您從托盤圖標控制您的服務。 當它檢測到您的服務已更改 state(已啟動->已停止等)時,它還將顯示彈出/氣球通知。

如果您只想向 Windows 服務發送一個簡單的命令,您可以通過以下方式從您的用戶應用程序向其發送消息。

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

如果您在 class 中覆蓋 OnCustomCommand 方法,則擴展 ServiceBase。 然后,您可以使用此命令觸發服務執行諸如重新加載配置文件之類的操作,或切換到某些 state。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM