Hi,
ich habe mir einen Service programmiert, der folgendermaßen aussieht:
Delphi-Quellcode:
procedure TInfoTunesService.ServiceContinue(Sender: TService;
var Continued: Boolean);
begin
ShowMessage('OnContinue');
FTCPServer.Resume;
Continued := true;
end;
procedure TInfoTunesService.ServiceCreate(Sender: TObject);
begin
MessageBox(0, 'Der Service wird erstellt', 'Info',
MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
// FTCPServer := TTCPDaemon.Create;
// FTCPServer.Execute;
end;
procedure TInfoTunesService.ServiceExecute(Sender: TService);
begin
MessageBox(0, 'Der Service wird ausgeführt', 'Info',
MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
// Endlosschleife ftw
while not Terminated do begin
ServiceThread.ProcessRequests(True);
end;
end;
procedure TInfoTunesService.ServicePause(Sender: TService; var Paused: Boolean);
begin
ShowMessage('OnPause');
FTCPServer.Suspend;
Paused := true;
end;
procedure TInfoTunesService.ServiceStart(Sender: TService;
var Started: Boolean);
begin
MessageBox(0, 'Der Service startet', 'Info',
MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
FTCPServer := TTCPDaemon.Create;
Started := true;
end;
procedure TInfoTunesService.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
MessageBox(0, 'Der Service wurde beendet', 'Info',
MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
FTCPServer.Terminate;
Stopped := true;
end;
Anhand der Messageboxen weiß ich jetzt, dass lediglich OnCreate des Service aufgerufen und danach der ganze Service beendet wird.
Ich kann mir darauf keinen Reim machen. Kann mir das jemand erklären?
Chris