服务程序增加系统托盘

服务程序增加系统托盘

ID:10281545

大小:42.00 KB

页数:12页

时间:2018-07-05

服务程序增加系统托盘_第1页
服务程序增加系统托盘_第2页
服务程序增加系统托盘_第3页
服务程序增加系统托盘_第4页
服务程序增加系统托盘_第5页
资源描述:

《服务程序增加系统托盘》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

2、序的框架.将工程保存为ServiceDemo.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功能.实际上,服务程序莫认是工作于Winlogon桌

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

5、cMgr,Dialogs,Unit_FrmMain;typeTDelphiService=class(TService)procedureServiceContinue(Sender:TService;varContinued:Boolean);procedureServiceExecute(Sender:TService);procedureServicePause(Sender:TService;varPaused:Boolean);procedureServiceShutdown(Sender:TService);proce

6、dureServiceStart(Sender:TService;varStarted:Boolean);procedureServiceStop(Sender:TService;varStopped:Boolean);private{Privatedeclarations}publicfunctionGetServiceController:TServiceController;override;{Publicdeclarations}end;varDelphiService:TDelphiService;FrmMain:TFr

7、mMain;implementation{$R*.DFM}procedureServiceController(CtrlCode:DWord);stdcall;beginDelphiService.Controller(CtrlCode);end;functionTDelphiService.GetServiceController:TServiceController;beginResult:=ServiceController;end;procedureTDelphiService.ServiceContinue(Sender

8、:TService;varContinued:Boolean);beginwhilenotTerminateddobeginSleep(10);ServiceThread.ProcessRequests(False);end;end;procedu

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

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

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