APP资源网_中文资源在线官网_А天堂中文官网_中文在线APP资源下载网

如何用Delphi编写Win2000服务程序

如何用Delphi编写Win2000服务程序

人气:1引自:中文资源在线官网

如何用Delphi编写Win2000服务程序:

        一、Win2000服务简介

服务程序(Service Application)是一种运行于WinNT的后台程序,每个服务程序(Service Application)中可能包含若干个服务(Service),每个服务就是其中的一个线程(该服务也可以创建多个子线程)。采用服务,应用程序可以获得特殊的权限,而且不会被用户通过Win2000的任务管理器直接结束程序,所以服务常常用来实现一些特殊的目标。

通过Win2000控制面板中的服务管理工具,我们可以设置/查看服务的特性:

(1)服务名称;(2)显示名称;(3)描述;(4)启动类型;(5)依赖关系;

其中,服务名称是标识给服务的。

以Win2000的C:\WINNT\System32\services.exe程序为例子,该Exe文件对应一个Service Application,是该服务程序的可见实体;该exe中包含多个服务(Service),例如Alerter,Dhcp(DHCP Client),Messenger等。当我们结束一个服务的时候,该服务所在的Service Application中的其他服务并没有被终止。 在Delphi中,Borland的工程师为我们提供了TServiceApplication,TService,TServiceThread等类,封装了大量细节,简化了服务程序的开发。 二、TServiceApplication 在Delphi中,类TServiceApplication就对应上述的ServiceApplication。利用Delphi的开发环境,我们新建一个Service Application Project,同时就创建了一个继承自TService的类。项目文件中的Application对象就是一个TServiceApplication实例。每个TServiceApplication包含若干个TService对象,正好对应上述的服务程序和服务之间的数量关系。 通过阅读TServiceApplication和TService类的定义,可以得知,TServiceApplication从TComponent类继承而来,TService从类TDataModule基础而来,Application对象负责各个TService对象的Create和Destroy。跟踪下列代码

Application.CreateForm(TService1, Service1);

可以发现创建的TService对象的Owner都是Application对象;在VCL FrameWork中Owner总是负责Destroy各个Component对象(VCL的TComponent类采用了Composite模式),所以TServiceApplication也将Destroy各个TService对象。  

专题文集:编程开发 服务程序
引用标题:《如何用Delphi编写Win2000服务程序》
来源地址:https://www.xjanfang.cn/news/tpart-46165.html