Windows Dienste mit C

Hallo,

ein kleines Projekt von mir beinhaltet einen Windows Service. Da ich noch nichts mit diesen gemacht habe, würde natürlich gleich das liebe msdn und google gefragt. Die Beispiele kann ich auch größtenteils nachvollziehen nur ein Paar Fragen habe ich noch.

Nach MSDN besteht ein Service aus 4 Teilen:
-normalen Program
-ServiceMain
-Service „Controller“
-Service Installer

Deren Bedeutung kann ich mir eig. herleiten nur den Part des Main-Programms verstehe ich noch nicht ganz.
In allen (einfach gehaltenen) Beispielen wird nämlich in der main-Methode der Win-API call „StartServiceCtrlDispatcher“ gemacht, der laut msdn den aufrufenden Thread mit dem Service Control Manager verbindet und erst zurückkehrt wenn der Dienst sich beendet. Wie kann ich mir das vorstellen? Da komme ich nämlich zu einer sehr grundlegenden Frage. Wird bei einem (autostart-)Service noch ein Prozess benötigt oder laufen alle Dienste in von Windows „gehosteten“ Prozessen. Vielleicht könnte mir generell jemand kurz den Hintergrund erklären?

  1. Frage
    Kann ich einen Service schreiben, der administrator Privilegien besitzt, diese aber nur bei der Installation abfrägt, es soll also nicht bei jedem Start die „Möchten sie Zulassen…“ Frage aufploppen. Hintergrund ist der: Ich bin am entwickeln eines primitiven Internetzeit (Parental Advisory???) Kontrollier Programms, das für einige Win-API Calls Admin Rechte benötigt. Ich denke,dass AntiVir Dienste doch auch Admin Rechte brauchen und die Fragen ja auch nur bei der Installation nach.

Dankeschön!!!

Gruß Felix

Hallo Felix,

sorry, keine Ahnung.

Gruß

Hermann

Hi Felix,

ich kann dir da leider nicht weiterhelfen, da ich kaum systemnahe Programmierung unter Windows mache.

Für Frage 2 kann ich dir vielleicht dennoch eine Richtung geben: Der Prozess muss im Systemkontext laufen, das bedeutet, dass nicht der User ihn startet, sondern „das System“ selbst. Wie das allerdings konkret zu realisiren ist, da muss ich leider passen.

Sorry und trotzdem viel Erfolg.

Gruß vom Linuxxer

Hallo,

leider kann ich dir da nicht weiterhelfen, habt von der Windows API keine Ahnung

lg Christoph

Hallo,

mit Windows-Services kenne ich mich nicht aus.

(Wegen Urlaubs kommt meine Antwort so spät.)

Gruß,

Tosta

Hallo thedafelix,
es tut mir, leid, dass meine Antwort so sehr spät kommt. Ich war verreist.
Noch mehr tut mir leid, dass ich dir nicht einmal helfen kann, da ich mich mit diesem Bereich noch nicht befasst habe.
Sorry