Dienst mit NotifyIcon ?

27/10/2009 - 19:53 von Peter Haus | Report spam
Hallo Ng.

Ich möchte gerne signalisieren können, ob in einem laufenden Dienst
ein Fehler aufgetreten ist oder nicht.
Meine Idee. Ich verwende ein NotifyIcon für den Try und signalisiere
durch die Farbe des Icon, ob ein Fehler aufgetreten ist oder nicht.

Nur. Ein Dienst sollte keine Gui haben.

Ist das Icon schon eine Gui,
oder erst wenn eine Form vorhanden ist?

Danke und Gruss
Peter
 

Lesen sie die antworten

#1 Thorsten Doerfler
27/10/2009 - 20:54 | Warnen spam
Peter Haus schrieb:
Ich möchte gerne signalisieren können, ob in einem laufenden Dienst
ein Fehler aufgetreten ist oder nicht.



Dafür gibt es die Ereignisanzeige. Meist interessiert das ja nur dann,
wenn etwas nicht so gegeben ist, wie man es erwartet.

Meine Idee. Ich verwende ein NotifyIcon für den Try und signalisiere
durch die Farbe des Icon, ob ein Fehler aufgetreten ist oder nicht.



Kann man auch machen.

Nur. Ein Dienst sollte keine Gui haben.



Korrekt.

Ist das Icon schon eine Gui,



Yep.

oder erst wenn eine Form vorhanden ist?



Das hat nichts damit zu tun, ob ein Form oder nicht. Mal davon ab, dass
im Hintergrund auch für ein NotifyIcon ein Fenster verwaltet wird. Es
muss eine Interaktion vom Dienst mit dem Desktop stattfinden. Alleine
das stellt ein schlechtes Design dar. Zumal auf einem Desktop System
heute nicht nur eine Benutzersession laufen muss, sondern es können
mehrere sein. Auf einem Terminal Server erst recht. Auf welchem Desktop
also soll der Dienst sein NotifyIcon platzieren? Auf allen? Ist
technisch auf dem Weg nicht möglich.

Hier greifst Du besser zu IPC Mechanismen, die da aus Named Pipes,
Sockets oder bereits abstrahierend WCF, Remoting bestehen können. Wenn
Du tatsàchlich nur ein oder zwei Zustànde signalisieren möchtest,
könnten Dir sogar schon NamedEvents reichen.

Dein Dienst installiert ein solches Event und für den Desktop erstellst
Du Deine Anwendung, die dieses Event anzapft und das NotifyIcon
darstellt. Sobald sich etwas àndert, signalisiert der Dienst dies über
dieses Event und Deine Desktop-App kann daraufhin den geànderten Zustand
anzeigen.

Beispiel dazu:
Multi-Process Synchronization with Named Events
http://blogs.msdn.com/mattdotson/ar...43143.aspx

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen