Delphi利用多线程创建系统服务

本文介绍如何使用Delphi通过多线程创建一个系统服务,该服务开机自动运行,能检测特定程序是否运行,如果程序未运行则每5秒显示提示消息。服务设置了交互模式,并在关机时释放资源以确保正常关机。
摘要由CSDN通过智能技术生成

 程序功能:创建系统服务,开机自动运行,监测某一程序是否正在运行,如果没有运行,则每隔5秒弹出一个提示消息框

程序实现:

 

1、启动Delphi6.0或者7.0 File->New->Other...->Service Application

 

2、设置服务属性  Interactive := True;   DisplayName := '监测当前进程';   Name := 'InspectService';(Interactive := True确保服务可以与桌面交互)

 

3、添加新的Form,Unit名称Unit_FrmMain,Form名称FrmMain

 

4、编写弹出消息线程:MessageThread

特别注意:一定要编写关机事件并注册,否则由于服务不能停止导致无法关机

 

程序源代码如下:

 

工程文件

 

  1. Program InspectExe; 
  2. Uses 
  3.   SvcMgr, 
  4.   Unit_Main In 'Unit_Main.pas' {InspectService: TService}
  5.   Unit_FrmMain In 'Unit_FrmMain.pas' {FrmMain}
  6. {$R *.RES} 
  7. Begin 
  8.   Application.Initialize; 
  9.   Application.CreateForm(TInspectService, InspectService); 
  10.   Application.Run; 
  11. End. 

 

服务单元

 

  1. Unit Unit_Main; 
  2. Interface 
  3. Uses 
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, WinSvc, 
  5.   Unit_FrmMain; 
  6. Type 
  7.   TInspectService = Class(TService) 
  8.     Procedure ServiceContinue(Sender: TService; Var Continued: Boolean); 
  9.     Procedure ServiceExecute(Sender: TService); 
  10.     Procedure ServicePause(Sender: TService; Var Paused: Boolean); 
  11.     Procedure ServiceShutdown(Sender: TService); 
  12.     Procedure ServiceStart(Sender: TService; Var Started: Boolean); 
  13.     Procedure ServiceStop(Sender: TService; Var Stopped: Boolean); 
  14.   private</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值