Delphi и service - ошибка 1053

Рейтинг: 0Ответов: 0Опубликовано: 30.05.2023

Не могу запустить сервис. Сервис регистрируется нормально, но при попытке запуска из сервис-контрол выдает ошибку 1053 нет ответа от службы..

Версия Делфи 10.4 . Полагаю что-то не вызвала/ не так сделала, подскажите что не так.

Взяли пример из справочной документации - добавили поток - опять не стартует

unit Unit3;

interface

uses
  Winapi.Windows,
  Winapi.Messages,
  System.SysUtils,
  System.Classes,
  Vcl.SvcMgr;

type


 TSparkyThread = class(TThread)
   public
     procedure Execute; override;
 end;

  Tscsservice = class(TService)
    procedure ServiceContinue(Sender: TService; var Continued: Boolean);
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
    procedure ServiceShutdown(Sender: TService);
    procedure ServicePause(Sender: TService; var Paused: Boolean);
    procedure ServiceCreate(Sender: TObject);
    procedure ServiceDestroy(Sender: TObject);
    procedure ServiceAfterInstall(Sender: TService);
    procedure ServiceAfterUninstall(Sender: TService);
    procedure ServiceBeforeInstall(Sender: TService);
    procedure ServiceBeforeUninstall(Sender: TService);
  private

  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  scsservice: Tscsservice;
  SparkyThread: TSparkyThread;

implementation

{$R *.dfm}

procedure TSparkyThread.Execute;
 begin
   while not Terminated do
   begin
     Beep;
     Sleep(500);
   end;
 end;

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  scsservice.Controller(CtrlCode);
end;

function Tscsservice.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure Tscsservice.ServiceAfterInstall(Sender: TService);
begin
  //
end;

procedure Tscsservice.ServiceAfterUninstall(Sender: TService);
begin
  //
end;

procedure Tscsservice.ServiceBeforeInstall(Sender: TService);
begin
  //
end;

procedure Tscsservice.ServiceBeforeUninstall(Sender: TService);
begin
  //
end;

procedure Tscsservice.ServiceContinue(Sender: TService; var Continued: Boolean);
begin
   SparkyThread.Resume;
   Continued := True;

end;

procedure Tscsservice.ServiceCreate(Sender: TObject);
begin
  //
end;

procedure Tscsservice.ServiceDestroy(Sender: TObject);
begin
  //
end;

procedure Tscsservice.ServicePause(Sender: TService; var Paused: Boolean);
begin
   SparkyThread.Suspend;
   Paused := True;

end;

procedure Tscsservice.ServiceShutdown(Sender: TService);
begin
  //
end;

procedure Tscsservice.ServiceStart(Sender: TService; var Started: Boolean);
begin
  SparkyThread := TSparkyThread.Create(False);
  Started := True;
end;

procedure Tscsservice.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
   SparkyThread.Terminate;
   Stopped := True;

end;

end.

Ответы

Ответов пока нет.