欢迎来到天天文库
浏览记录
ID:34402737
大小:56.57 KB
页数:4页
时间:2019-03-05
《附录b_创建nt服务程序new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、附录B创建NT服务程序等待一个预定义的时间量。然后将IIS的日志文件发送到指定的邮件接收者。该示例程序对大部分变量进行了硬编码,但从整本书中都可以看到,在外部对应用程序数据进行配置是一个相当直接的过程。例如,邮件接收者、发送的信息、以附录B创建NT服务程序及定时器间隔都可以存储在注册表中,无需重新编译程序即可进行修改(第15章涵盖了将应用程序数据持久存储到注册表的内容,第16章则涉及了INI文件的使用,因此在这里我们不再重复该信息)。服务程序通常运行在后台,它可以使计算机更加有用。有用是相对于特
2、定的服务程序的基本框架是由Delphi生成的,您只需编写定义服务的代码。个人或组织而言的。服务程序最好的例子是IIS服务器。当在一台高性能的服务B.1.1定义邮件发送器服务器或PC上安装了IIS后,IIS就作为后台服务运行并向浏览您的Web站点的人们提供Web页面。同一领域的其他服务还包括FTP、SMTP以及Telnet服务器。当在服务控制管理器(即ServiceControlManager或SCM,细节请参考“服事件日志和WindowsInstaller也都作为服务运行。务控制管理器”一节)中
3、启动服务时,Delphi调用TService模块中的OnExecute实际的程序中服务的候选者可能具有如下特征:运行时没有活动的用户输入,事件方法,您可以自行定义该方法。OnExecute事件方法中所需的基本代码是一无论是否有人登录都需要运行。IIS是一个很好的例子。在实际开发环境中,我个while循环,这样服务程序就可以处理请求。曾经将不断的传输并验证事务的程序作为服务来开发。whileNotTerminateddo注意:VisualBasic.NET支持建立NT服务程序。ServiceThr
4、ead.ProcessRequests(False);该代码与Windows中处理信息队列的循环非常相似。ServiceThread对象是Delphi直接地支持建立WindowsNT(包括Windows2000或WindowsNT服务程序中每个服务的专用线程。只要服务尚未被服务控制管理器停止,Not5.0)服务程序。建立NT服务的功能并非对所有工具都是固有的。例如,MicrosoftTerminated的结果都是True。VisualBasic6.0及更早的版本无法直接建立服务程序。附录B通过示
5、范一个自动由于日志文件邮件发送服务会在固定的时间间隔向接收者发送IIS日志文发送IIS日志文件的程序,讨论了建立WindowsNT服务程序的基本概念。件,因此我们需要向OnExecute事件方法添加的代码就是:在循环开始前使定时器生效,在循环结束后使定时器失效。在示例程序中,OnExecute事件处理程序的代码如下。B.1创建服务程序procedureTMyService.ServiceExecute(Sender:TService);建立服务程序最容易的方法是从NewItems对话框中启动Se
6、rvicebeginTimer1.Enabled:=True;Application。可以注意到还有一个Service项。Service可以向已有的程序添加一个TService模块,但定义新的服务时,需要选择ServiceApplication。whileNotTerminateddo当单击ServiceApplication后,Delphi将创建一个新的工程。在新工程的.DPRServiceThread.ProcessRequests(False);源文件的uses子句中,首先引用了SvcMg
7、r。另外,工程中还添加了一个包含TService类的单元。TService类继承了TDataModule,可以在其中添加非可视化Timer1.Enabled:=False;控件和服务程序代码。不要在工程源文件中包括Forms和HttpApp单元。SvcMgr、end;Forms和HttpApp都定义了一个全局的Application对象,这会导致服务程序中当服务启动后,定时器将生效。代码一直在while循环中运行,直至服务停出现冲突。止,最后定时器也将失效。注意:在Forms和SvcMgr单元中
8、确实存在全局对象Application,而在当时间间隔到达后,当天的日志将发送到预先指定的接收者。执行这些任务HttpApp.pas的beta版实现中并未发现Application变量。关于联合使用这的代码如下。三个单元的警告摘自Delphi的帮助文件。当然,试验总是可以的,但应该事functionTMyService.GetLogFileName:string;先预见到Application对象可能造成的冲突。const服务程序是很直观的。本书的光盘上包含了ServiceApp.dpr文件。该
此文档下载收益归作者所有