[.NET/C#]System tray applicatie

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 17-09 20:25
Ik ben op dit moment bezig een soort auto-update tooltje te maken dat zichtbaar is in je system tray. Dit tooltje zal berichten krijgen van een server als er bepaalde updates beschikbaar zijn. Denk aan applicaties als nod32, msn etc. Ik zou een windows service kunnen maken maar wil er ook een UI aan koppelen om deze updates te bekijken en het 1 en ander te kunnen configuren. In dit geval is een windows service niet geschikt (scheiding met UI). Mijn vraag is of hier een bepaald standaard voor is, en waar ik eventuele documentatie kan vinden voor dit soort oplossingen. Ik zou ook enkel een windows form applicatie kunnen maken, maar wat is de beste manier om zo'n applicatie te starten bij het opstarten van windows? Moet ik dan met registry settings gaan rommelen?

stp - PSN ID: stp_4


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 13:55

Sebazzz

3dp

Veel applicaties gebruiken het register ja, maar ik vind het fijner als ze gewoon in de StartUp map van het startmenu staan. Kan je ze makkelijk uitschakelen of verwijderen. En voor richtlijnen hoef je op MSDN alleen maar te zoeken naar '<keyword> Guidelines', dan vindt je alles wat je nodig hebt ;)

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 17-09 20:25
Sebazzz schreef op maandag 15 juni 2009 @ 22:27:
Veel applicaties gebruiken het register ja, maar ik vind het fijner als ze gewoon in de StartUp map van het startmenu staan. Kan je ze makkelijk uitschakelen of verwijderen. En voor richtlijnen hoef je op MSDN alleen maar te zoeken naar '<keyword> Guidelines', dan vindt je alles wat je nodig hebt ;)
Zal daar nog eens doorheen spitten. Er zullen inderdaad meerdere wegen zijn. Maar bijvoorbeld bij NOD draait er ook een windows service. Vraag me af of deze service communiceert met het system tray proggie, door bv het laten zien van download info (en wat zoals ik lees niet helemaal de bedoeling is van een windows service)

[ Voor 8% gewijzigd door stp_4 op 15-06-2009 22:36 ]

stp - PSN ID: stp_4


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 13:55

Sebazzz

3dp

Communiceren met een service kan onder andere met Named Pipes.

edit: Codeproject heeft nog wel wat makkelijk te verteren leesvoer.
Succes :)

[ Voor 32% gewijzigd door Sebazzz op 15-06-2009 22:44 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • vandeGerrit
  • Registratie: Januari 2009
  • Laatst online: 26-08 12:51

vandeGerrit

Well, this can't be right

Aangezien, Windows Services de meeste op het Systeem Account draaien, hebben deze geen toegang tot je desktop, of systemtray. Je kunt dit wel aanpassen door de services in te stellen door eigenschappen, het draaien als een local systeem account, en het vinkje "Interact with Desktop" aan te vinken.

Nog wat help van MS: How To Design a Service to Interact with Multiple User Sessions

[ Voor 21% gewijzigd door vandeGerrit op 15-06-2009 22:55 ]


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Services horen niet met de desktop te klooien. Dat "vinkje" is een hack om te zorgen dat oude services werken; nieuwe services zouden daar niet op moeten vertrouwen. Genoeg betere ideeen online, zoals Sebazz al zei.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
stp_4 schreef op maandag 15 juni 2009 @ 22:24:
Denk aan applicaties als nod32, msn etc. Ik zou een windows service kunnen maken maar wil er ook een UI aan koppelen om deze updates te bekijken en het 1 en ander te kunnen configuren.
Het is IMO nogal belangrijk wat je applicatie precies doet en in welke context het moet draaien. Zo is MSN een applicatie die in de user scope draait, en daar zou het logisch zijn om gewoon een background applicatie te draaien die een systray icon heeft.

In het geval van bijvoorbeeld nod32, is dat meer een process die op machine scope draait om je computer te beveiligen, maar waar de gebruiker ook interactie met dat process heeft. In dat geval zou ik gaan voor een Service die d.m.v. named pipes ( of eventueel sockets als het ook over verschillende machines moet draaien ) communiceert met de UI ( systray in dit geval ).

Er zijn dan weer verschillende manier om gebruik te maken van je communcitie kanaal. Zo kun je bijvoorbeeld kiezen voor een eigen protocol, WCF of Remoting.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 17-09 20:25
Ik heb me vandaag wat verdiept in WCF. Ziet er leuk uit en denk dat ik hiermee wel wat kan. Is voor mij weer een nieuwe techniek en daardoor weer een leuke uitdaging. Ga me er nog morgen nog meer in verdiepen. Bedankt voor de input.

stp - PSN ID: stp_4

Pagina: 1