Delphi 服务程序[2] TService 属性、事件

Delphi 服务程序[2] TService 属性、事件

1、TService属性:

  • AllowPause: //是否允许暂停
  • AllowStop: //是否允许停止
  • Dependencies: //设置该服务与其他服务的依赖关系
  • DisplayName: //在Windows服务管理器中显示的名称(注意:不是服务名)
  • ErrorSeverity //表明如果启动服务时遇到错误,如何处理
  • Name: //服务名称,使用/install参数安装时安装的服务名为此属性值  //在注册表中的HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services下创建一个项。
  • Interactive: //是否要与桌面进行交互
  • StartType: //服务的启动方式
  • ServiceStartName: //设定用于启动服务的用户名
    • 服务以特定用户的身份运行,这意味着服务对不同事物(如文件夹)的访问权限与运行服务的帐户相同。许多服务作为“本地系统”运行,除非您在安装服务时指定特定的用户名。对于许多情况,“本地系统”就足够了,但是如果服务需要访问诸如网络驱动器/共享(通常受用户/密码保护)上的文件夹之类的内容,则可能需要指定一个已被授予访问网络共享权限的帐户。
  • Password: //用于设置口令。只适合于不使用LoaclSystem账号的服务
  • ServiceType   //服务的类型,可以设为:stWin32(Win32服务),stDevice(设备驱动程序)或stFileSystem(文件系统服务)
  • WaitHint   //服务等待控制命令或状态请求的时间。如果在规定的时间内没有响应,则SCM认为服务出错

2、TService事件:

  • ServiceStart  //在该服务启动的时候调用OnStart事件,参数Started的默认为True,所以不用在该事件中再设置Started := True; 在此事件中如果判断某些条件不允许服务运行,则可以将Started置为False,这样服务将会不再启动。
1
procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
  • ServiceStop  //在该服务被停止的时候调用OnStop事件,Stopped的默认为True,在此事件中如果判断某些条件不允许服务停止则可将Stopped置为False来防止服务被停止。
1
procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
  • ServiceExecute  //服务的主体执行部分,需要将服务的主要功能实现代码放在此事件中,此过程执行完毕后服务将会自动停止,所以一般在此事件中要写类似如下代码:
1
2
3
4
5
6
7
8
procedure TService1.ServiceExecute(Sender: TService);
begin
  while not Terminated do
  begin
    Sleep(10);
    ServiceThread.ProcessRequests(False);
  end;
end;
  • ServicePause  //在服务被暂停时调用的事件,Paused的含义类似ServiceStart事件中的Started.
1
procedure TService1.ServicePause(Sender: TService; var Paused: Boolean);
  • ServiceContinue  //服务被暂停后重新启动继续执行时调用的事件,Continued的含义类似ServiceStart事件中的Started
1
procedure TService1.ServiceContinue(Sender: TService; var Continued: Boolean);

  

 

 

创建时间:2021.01.21  更新时间:2021.01.22

 

posted on   滔Roy  阅读(755)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报

导航

点击右上角即可分享
微信分享提示