用Delphi编写Win2000服务程序

2008-02-23 07:19:27来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

1 2 下一页

一、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对象。

上一篇: 制作类似WinAmp一样的“磁性”窗口
下一篇: 制作真正的TopMost窗口

1 2 下一页

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:利用Dephi5编写控制面板程序

下一篇:Spcomm串口控件的例程