Ich weiss nicht ob Dir das hilft, denn ich habe eine komplett eigene Service-Klasse geschrieben die direkt auf die
API zugreift. Daher greife ich über einen ControlDispatcher auf den Service zu (und die ServiceMain - Funktion ist bei mir auch eine Methode).
Aber vielleicht hilft es ja doch.
Delphi-Quellcode:
var
m_dispatcher: array[0..1] of TServiceTableEntry;
begin
m_dispatcher[0].lpServiceName := PChar('ServiceName'); // hier der Name des Service
m_dispatcher[0].lpServiceProc := @ServiceProcedure; // adresse zur ServiceMain-Funktion
m_dispatcher[1].lpServiceName := nil;
m_dispatcher[1].lpServiceProc := nil;
StartServiceCtrlDispatcher(m_dispatcher[0]);
end;
Edit: Und nicht wundern, die beiden NIL - Einträge da braucht es wirklich. Weiss nicht warum, aber ohne die gehts nicht.