- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Delphi 中创建了一些不同的服务后,我意识到 TService
缺少服务应用程序应具备的一些必要功能,例如日志记录、异常处理和注册表中的“描述”属性。
我想知道我是否可以制作自己的服务 shell,例如 TJDService
,它是从 TService
继承的,但有一些额外的东西,例如 '对象检查器中显示的描述属性。我可以像这样制作自己的服务外壳吗?我知道我可以创建自己的“默认项目”,继承自 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.
与典型服务相同,但使用我的 TJDService
而不仅仅是 TService
。
最佳答案
简单的问题,简单的答案。是的,你可以这样做。我自己正是这样做的,以便在我公司代码库中实现的各种服务之间共享代码。
RegisterCustomModule
是使 Description
属性显示在对象检查器中的方法。话虽如此,我认为在对象检查器中设置这些服务属性的能力并没有那么有值(value)。我认为在代码中运行时设置它们是完全可以接受的,但这个决定取决于个人喜好。
即使您使用RegisterCustomModule
使 IDE 知道您的服务类,默认的新服务应用程序也不会使用您的服务类。您可以根据需要自定义默认服务应用程序,然后将其保存到 Object Repository .
我的回答here展示了我如何实现一个可以作为服务或标准桌面进程运行以进行调试的应用程序。
关于delphi - 是否可以创建 TService 的后代并发布我自己的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9251998/
在 Delphi 中创建了一些不同的服务后,我意识到 TService 缺少服务应用程序应具备的一些必要功能,例如日志记录、异常处理和注册表中的“描述”属性。 我想知道我是否可以制作自己的服务 she
在 Delphi 中使用 Windows 服务应用程序时,我偶然发现了该主题中的问题。 我确实在 IDE 上启动了一个默认的 Delphi Windows 服务项目,按照向导进行操作,最后我有了一个项
尝试在类中注入依赖项时遇到问题。当我被困在这里时,我只是在尝试以了解有关简单注射和DI的更多信息。 这是我的主要方法: static void Main(string[] args) { va
一直很奇怪的是,Delphi 的 VCL 中的 TService 上从来没有 Description 属性。直到今天,Delphi XE2 还没有这个功能。这是如此简单和常见的事情,我想知道为什么它不
我是一名优秀的程序员,十分优秀!