После создания нескольких различных служб в Delphi я понял, что TService
не хватает некоторых необходимых вещей, которые должны поставляться с приложением-службой, таких как ведение журнала, обработка исключений и свойство 'Description' вреестра.
Мне было интересно, можно ли мне сделать свою собственную служебную оболочку, такую как TJDService
, которая унаследована от TService
, но с некоторыми дополнительными вещами, такими как свойство 'Description', показывающеев объекте инспектора.Могу ли я сделать свою собственную служебную оболочку, как это?Я знаю, что могу сделать свой собственный «проект по умолчанию», унаследованный от TService
, но он включает в себя весь мой код с любым новым проектом.
Когда создается новый сервис, он должен выглядеть так:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.SvcMgr,
JDServices;
type
TJDService1 = class(TJDService)
private
public
function GetServiceController: TServiceController; override;
end;
var
JDService1: TJDService1;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
JDService1.Controller(CtrlCode);
end;
function TJDService1.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
end.
То же, что и обычная служба, но вместо TService
.
используется мой
TJDService
.