begin svcmgr :=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS); if svcmgr = 0 then exit ; svc :=OpenService(svcmgr,pchar(ServiceName),SERVICE_ALL_ACCESS); if svc = 0 then begin CloseServiceHandle(svcmgr); exit ; end ; QueryServiceStatus(svc,temp); if temp.dwCurrentState = SERVICE_STOPPED then begin if StartService(svc,0,s) then //服务:"'+ServiceName+'"启动成功' else //服务:"'+ServiceName+'"启动失败'; end ;// ControlService(svc,SERVICE_CONTROL_STOP,temp);关闭服务 CloseServiceHandle(svcmgr); CloseServiceHandle(svc); end;
C:\Program Files\costSYS\costServer.exe -install
就是用Delphi编写,能以服务的形式驻留。
createService,openService,SetService,
安装服务,可以看看楼上说的几个函数下班是以前写的关于启动和停止服务的,没有写安装服务,不过都是用那一套东西Uses WinSvc
procedure RunService(ServiceName : String); //启动服务
procedure TASESWatch2002.RunService(ServiceName: String);
var
svcmgr,svc : Integer ;
temp : _SERVICE_STATUS;
s : Pchar ;
begin
svcmgr :=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS);
if svcmgr = 0 then
exit ;
svc :=OpenService(svcmgr,pchar(ServiceName),SERVICE_ALL_ACCESS);
if svc = 0 then
begin
CloseServiceHandle(svcmgr);
exit ;
end ;
QueryServiceStatus(svc,temp);
if temp.dwCurrentState = SERVICE_STOPPED then
begin
if StartService(svc,0,s) then
//服务:"'+ServiceName+'"启动成功' else
//服务:"'+ServiceName+'"启动失败';
end ;// ControlService(svc,SERVICE_CONTROL_STOP,temp);关闭服务
CloseServiceHandle(svcmgr);
CloseServiceHandle(svc);
end;