在 Delphi 中创建了一些不同的服务之后,我意识到TService
缺少一些服务应用程序应具备的必要功能,例如日志记录、异常处理和注册表中的“描述”属性。
我想知道我是否可以制作自己的服务外壳,例如TJDService
从 a 继承TService
但带有一些其他内容的服务外壳,例如对象检查器中显示的“描述”属性。我可以像这样制作自己的服务外壳吗?我知道我可以让我自己的“默认项目”继承自 a 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.
与典型服务相同,但使用 myTJDService
而不是TService
.