Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

OnExecute/OnStart/etc. des Dienstes werden nicht aufgerufen

  Alt 10. Apr 2007, 21:12
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
  Mit Zitat antworten Zitat