Zitat von
xineohp:
und wie macht norton etc. das dann?
Da interaktive Dienste (Services) ein nicht zu unterschätzendes Sicherheitsrisiko darstellen, gehe ich davon aus, dass sie einen nicht-interaktiven Service
und eine normale
GUI-Anwedung schreiben, die mit dem Service kommuniziert (die Wahl (der Qual) der Art und Weise der Interprozeßkommunikation bleibt Dir überlassen).
Per ShellExecute kannst Du den Dienst zwar nicht starten (da Dienste vom Service Control Manager (SCM) verwaltet werden) - aber auf der Konsole kannst Du einen Dienst mit 'net start foo' starten, bzw. mit 'net stop foo' beenden.
Um einen Start bei mehreren angemeldeten Benutzern zu verhindern (was ja nur auf einem System mit Terminal Server -Funktionalität vorkommen kann), kannst Du ein
Mutex-Objekt im globalen Namensraum erzeugen (der Name beim Aufruf von CreateMutex muss dazu mit 'Global\' beginnen).
Gruss Nico