Zitat von
Apollonius:
Was heißt "beinhaltet die Funktion nicht"? Entweder RegisterServiceCtrlHandler oder RegisterServiceCtrlHandlerEx muss er benutzen. Jeder Dienst muss das. Und die Abfrage hilft nicht viel, wenn du eine Benachrichtigung erhalten willst.
Habe ich auch gerade festgestellt und nochmal nachgeschaut, RegisterServiceCtrlHandler ist vorhanden.
Delphi-Quellcode:
PROCEDURE serviceproc(dwargc:integer;VAR lpszargv:pchar); STDCALL;
BEGIN
sshstatushandle:=registerservicectrlhandler(pchar(servicename), @servicehandler);
IF (sshstatushandle<>0) THEN BEGIN
zeromemory(@ssstatus, sizeof(ssstatus));
ssstatus.dwservicetype:=SERVICE_WIN32_OWN_PROCESS;
ssstatus.dwcurrentstate:=SERVICE_START_PENDING;
ssstatus.dwcontrolsaccepted:=SERVICE_ACCEPT_STOP OR SERVICE_ACCEPT_PAUSE_CONTINUE;
ssstatus.dwwaithint:=1000;
setservicestatus(sshstatushandle, ssstatus);
stopped:=false;
paused:=false;
ssstatus.dwcurrentstate:=SERVICE_RUNNING;
setservicestatus(sshstatushandle, ssstatus);
SERVICE_MAIN;
ssstatus.dwcurrentstate:=SERVICE_STOPPED;
setservicestatus(sshstatushandle, ssstatus);
END;
END;
Wie benutzt man das um eine Benachrichtigung zu erhalten ?
KUBA