用Delphi创建服务程序.pdf

用Delphi创建服务程序.pdf

ID:56449300

大小:84.26 KB

页数:14页

时间:2020-06-24

用Delphi创建服务程序.pdf_第1页
用Delphi创建服务程序.pdf_第2页
用Delphi创建服务程序.pdf_第3页
用Delphi创建服务程序.pdf_第4页
用Delphi创建服务程序.pdf_第5页
资源描述:

《用Delphi创建服务程序.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用Delphi创建服务程序Windows2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处:(1)不用登陆进系统即可运行.(2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.笔者在2003年为一公司开发机顶盒项目的时候,曾经写过课件上传和媒体服务,下面就介绍一下如何用Delphi7创建一个Service程序.运行Delphi7,选择菜单File-->New-->Other--->ServiceApplication.将生成一个服务程序的框架.将工程保存为Ser

2、viceDemo.dpr和Unit_Main.pas,然后回到主框架.我们注意到,Service有几个属性.其中以下几个是我们比较常用的:(1)DisplayName:服务的显示名称(2)Name:服务名称.我们在这里将DisplayName的值改为"Delphi服务演示程序",Name改为"DelphiService".编译这个项目,将得到ServiceDemo.exe.这已经是一个服务程序了!进入CMD模式,切换致工程所在目录,运行命令"ServiceDemo.exe/install",将提示服务安装成功!

3、然后"netstartDelphiService"将启动这个服务.进入控制面版-->管理工具-->服务,将显示这个服务和当前状态.不过这个服务现在什么也干不了,因为我们还没有写代码:)先"netstopDelphiService"停止再"ServiceDemo.exe/uninstall"删除这个服务.回到Delphi7的IDE.我们的计划是为这个服务添加一个主窗口,运行后任务栏显示程序的图标,双击图标将显示主窗口,上面有一个按钮,点击该按钮将实现Ctrl+Alt+Del功能.实际上,服务程序莫认是工作于Win

4、logon桌面的,可以打开控制面板,查看我们刚才那个服务的属性-->登陆,其中"允许服务与桌面交互"是不打钩的.怎么办?呵呵,回到IDE,注意那个布尔属性:Interactive,当这个属性为True的时候,该服务程序就可以与桌面交互了.File-->New-->Form为服务添加窗口FrmMain,单元保存为Unit_FrmMain,并且把这个窗口设置为手工创建.完成后的代码如下:unitUnit_Main;interfaceusesWindows,Messages,SysUtils,Classes,Grap

5、hics,Controls,SvcMgr,Dialogs,Unit_FrmMain;typeTDelphiService=class(TService)procedureServiceContinue(Sender:TService;varContinued:Boolean);procedureServiceExecute(Sender:TService);procedureServicePause(Sender:TService;varPaused:Boolean);procedureServiceShutd

6、own(Sender:TService);procedureServiceStart(Sender:TService;varStarted:Boolean);procedureServiceStop(Sender:TService;varStopped:Boolean);private{Privatedeclarations}publicfunctionGetServiceController:TServiceController;override;{Publicdeclarations}end;varDelp

7、hiService:TDelphiService;FrmMain:TFrmMain;implementation{$R*.DFM}procedureServiceController(CtrlCode:DWord);stdcall;beginDelphiService.Controller(CtrlCode);end;functionTDelphiService.GetServiceController:TServiceController;beginResult:=ServiceController;end;

8、procedureTDelphiService.ServiceContinue(Sender:TService;varContinued:Boolean);beginwhilenotTerminateddobeginSleep(10);ServiceThread.ProcessRequests(False);end;end;procedureTDelphiService.Service

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。