如何写一个NT Service Application 的程序?最简单的一种,只对两个目录作Copy。

ylk_pop 2001-12-11 03:39:26
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnxyy 2001-12-25
  • 打赏
  • 举报
回复
圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!
hnxyy 2001-12-25
  • 打赏
  • 举报
回复
圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!圣诞快乐!!!
  • 打赏
  • 举报
回复
unit Unit1;
(*
Test Service Application - 12.28.99 - David Lively
Email dlively@intellecare.com

A simple service application that can be started, paused, continued, and stopped.
Beeps once every two seconds when executing. Install by running
"service /install" from the command line, then manipulate the service with:

START) net start "test service"
STOP) net stop "test service"
PAUSE) net pause "test service"
CONTINUE) net continue "test service"

To uninstall, run "service /uninstall"

*)
interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
TTestService = class(TService)
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceExecute(Sender: TService);
procedure ServiceBeforeInstall(Sender: TService);
procedure ServiceAfterInstall(Sender: TService);
procedure ServiceAfterUninstall(Sender: TService);
procedure ServiceBeforeUninstall(Sender: TService);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
procedure ServiceShutdown(Sender: TService);
procedure ServicePause(Sender: TService; var Paused: Boolean);
procedure ServiceContinue(Sender: TService; var Continued: Boolean);
private
{ Private declarations }
fPaused : boolean;
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;

var
TestService: TTestService;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
TestService.Controller(CtrlCode);
end;

function TTestService.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;

procedure TTestService.ServiceStart(Sender: TService; var Started: Boolean);
begin
{ Alert the user }
ShowMessage('OnStart');
{ tell the OS that we're starting }
Started := TRUE;
end;

procedure TTestService.ServiceExecute(Sender: TService);
begin
ShowMessage('OnExecute');
{ Execute until we're told to stop }
while not Terminated do begin
{ Only act if we're not paused }
if not fPaused then begin
{ wait 2 seconds }
Sleep(2000);
{ beep 在这里放自已的代码}
MessageBeep(0);
end; { if not ServiceThread.Suspended }
{ Let other threads execute }
ServiceThread.ProcessRequests(FALSE);
end; { while not Terminated }
end;

procedure TTestService.ServiceBeforeInstall(Sender: TService);
begin
ShowMessage('BeforeInstall');
end;

procedure TTestService.ServiceAfterInstall(Sender: TService);
begin
ShowMessage('After Install');
end;

procedure TTestService.ServiceAfterUninstall(Sender: TService);
begin
ShowMessage('After Uninstall');
end;

procedure TTestService.ServiceBeforeUninstall(Sender: TService);
begin
ShowMessage('Before Uninstall');
end;

procedure TTestService.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
{ Tell the service thread to terminate }
ServiceThread.Terminate;
{ Tell the OS that we're stopping }
Stopped := TRUE;
{ Alert the user }
ShowMessage('Stop');
end;

procedure TTestService.ServiceShutdown(Sender: TService);
begin
ShowMessage('Shutdown');
end;

procedure TTestService.ServicePause(Sender: TService; var Paused: Boolean);
begin
{ tell OS that pause was successful }
Paused := True;
{ set are pause flag so Execute loop doesn't do anything }
fPaused := TRUE;
{ Alert the user visually }
ShowMessage('Pause');
end;

procedure TTestService.ServiceContinue(Sender: TService;
var Continued: Boolean);
begin
{ Tell the OS that the Continue was successful }
Continued := True;
{ Turn our internal pause flag off }
fPaused := FALSE;
{ alert the user visually }
ShowMessage('Continue');
end;
962veiri 2001-12-25
  • 打赏
  • 举报
回复
我觉得跟Win2000没什么区别吧???
用SHFILEOPERATION(..)API函数就可以了
刘志飞 2001-12-25
  • 打赏
  • 举报
回复
注意一些API的变化就行了!
cobi 2001-12-25
  • 打赏
  • 举报
回复
跟写一般的程序没有什么区别阿
cul 2001-12-25
  • 打赏
  • 举报
回复
u.p

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧