这几个event到底是什么时候触发?!在线等待!!! (10分)

  • 主题发起人 主题发起人 vivee
  • 开始时间 开始时间
V

vivee

Unregistered / Unconfirmed
GUEST, unregistred user!
写service application时,有下列事件
AfterInstall
AfterUninstall
BeforeInstall
BeforeUninsall
OnContinue(*)
OnCreate
OnDestroy
OnExecute(*)
OnPause
OnShutDown
OnStart(*)
OnStop
重点是加*的几个!!
 
基本上和英语的意思差不多,可以在每个里写上showmessage('event')
 
AfterInstall 安装后
AfterUninstall
BeforeInstall
BeforeUninsall
OnContinue(*)
OnCreate
OnDestroy
OnExecute(*)
OnPause
OnShutDown
OnStart(*)
OnStop
 
执行一个ServiceApplication,如果检测到命令行参数为安装,首先触发BeforeInstall事件,
然后调用API函数CreateService,接着触发AfterInstall事件,如果命令行参数为卸载,首先
触发BeforeUninsall事件,然后调用API函数DeleteService,接着触发AfterUninstall事件。
如果没有检测到这两个参数则执行下面的操作:
先创建控制线程,接着调用API函数StartServiceCtrlDispatcher关联服务线程和控制线程,
然后服务创建服务线程,触发OnStart事件,然后触发OnExecute,服务线程在收到以下消息
时分别触发相应的事件:
SERVICE_CONTROL_STOP: ActionOK := FService.DoStop;
SERVICE_CONTROL_PAUSE: ActionOK := FService.DoPause;
SERVICE_CONTROL_CONTINUE: ActionOK := FService.DoContinue;
SERVICE_CONTROL_SHUTDOWN: FService.DoShutDown;
释放service的时候触发OnDestroy事件。
 
太详细了,谢谢星语心愿!!
 
后退
顶部