ユーザーがワークステーションを起動したときに常に実行されているWindowsサービスがあります。このWindowsサービスは重要であり、サービスの停止、開始、再起動などの特定のことが発生したときに、通知領域にバルーン通知を表示したいと思います。
例えば:
また、Windowsサービスの通知領域アイコンを表示する方法はありますか?
ユーザーがワークステーションを起動したときに常に実行されているWindowsサービスがあります。このWindowsサービスは重要であり、サービスの停止、開始、再起動などの特定のことが発生したときに、通知領域にバルーン通知を表示したいと思います。
例えば:
また、Windowsサービスの通知領域アイコンを表示する方法はありますか?
Windowsサービスがデスクトップと直接対話する時代は終わったので、別の方法を見つける必要があります。
私が行ったことは、NotifyIconを含む通常のWinFormsアプリケーションを作成することです。このアプリケーションの動作はタスクマネージャーの動作を模倣しているため、タスクバーから非表示にして、システムトレイにのみ表示できます。システムトレイアイコンを右クリックすると、メニューが表示されます。アイコンをダブルクリックすると、アプリケーションウィンドウが表示されます。
WinFormsアプリケーションとWindowsサービス間の通信を容易にするために、私はWCFを使用します。具体的には、JuvalLowyのPublish-SubscribeFrameworkを使用します。これは、この種のシナリオに非常に適しています。詳細については、ここで私の答えを参照してください。
お役に立てれば。
単純なコマンドをWindowsサービスに送信するだけの場合は、次の方法でユーザーアプリからメッセージを送信できます。
ServiceController myService = new ServiceController("YOUR Service Name");
myService.ExecuteCommand(123); // do something;
クラスのOnCustomCommandメソッドをオーバーライドすると、extendsServiceBaseがクラス分けされます。次に、このコマンドを使用して、サービスをトリガーし、構成ファイルをリロードしたり、ある状態に切り替えたりすることができます。
新しい(無料の)ServiceTrayユーティリティを使用すると、トレイアイコンからサービスを制御できます。また、サービスの状態が変化した(開始->停止など)ことを検出すると、ポップアップ/バルーン通知が表示されます。