Delphi服务程序注册与卸载
//Delphi服务程序注册与卸载
uses winsvc;
function InstallService(ServiceName, DisplayName, FileName: string): boolean;
var
SCManager,Service: THandle;
Args: pchar;
begin
Result := False;
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then Exit;
try
Service := CreateService(SCManager, //句柄
PChar(ServiceName), //服务名称
PChar(DisplayName), //显示服务名
SERVICE_ALL_ACCESS, //服务访问类型
SERVICE_WIN32_OWN_PROCESS, //服务类型 or SERVICE_INTERACTIVE_PROCESS
SERVICE_AUTO_START, //自动启动服务
SERVICE_ERROR_IGNORE, //忽略错误
PChar(FileName), //启动的文件名
nil, //name of load ordering group (载入组名) 'LocalSystem'
nil, //标签标识符
nil, //相关性数组名
nil, //帐户(当前)
nil); //密码(当前)
Args := nil;
StartService(Service, 0, Args);
CloseServiceHandle(Service);
finally
CloseServiceHandle(SCManager);
end;
Result := True;
end;
procedure UninstallService(ServiceName: string);
var
SCManager,Service: THandle;
ServiceStatus: SERVICE_STATUS;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then Exit;
try
Service := OpenService(SCManager, PChar(ServiceName), SERVICE_ALL_ACCESS);
ControlService(Service, SERVICE_CONTROL_STOP, ServiceStatus);
DeleteService(Service);
CloseServiceHandle(Service);
finally
CloseServiceHandle(SCManager);
end;
end;
begin
case Control of
SERVICE_CONTROL_STOP:
begin
Stopped := True;
Status.dwCurrentState := SERVICE_STOPPED;
end;
SERVICE_CONTROL_PAUSE:
begin
Paused := True;
Status.dwcurrentstate := SERVICE_PAUSED;
end;
SERVICE_CONTROL_CONTINUE:
begin
Paused := False;
Status.dwCurrentState := SERVICE_RUNNING;
end;
SERVICE_CONTROL_INTERROGATE: ;
SERVICE_CONTROL_SHUTDOWN: Stopped := True;
end;
SetServiceStatus(StatusHandle, Status);
end;
转载于:https://www.cnblogs.com/piaoliuxia/archive/2008/09/07/1937300.html
- 点赞
- 收藏
- 分享
- 文章举报
- Delphi服务程序注册与卸载
- Delphi服务程序注册与卸载
- Delphi 服务程序注册与卸载
- C# 开发Windows服务程序并在计算机上注册服务
- C#对Windows服务操作(注册安装服务,卸载服务,启动停止服务,判断服务存在)
- 如何用 C 注册 windows 服务程序 (分析 Java Service Wrapper 代码)
- 服务注册与卸载
- 用Delphi编写Windows服务程序(2)
- 【转】 DELPHI编写服务程序总结三--代码质量
- Delphi创建服务程序
- 注册或卸载服务--利用bat文件
- 在DELPHI程序中注册OLE/COM控件
- Delphi2010中DataSnap高级技术(6)—加强服务程序对访问者的控制能力
- Delphi编写Windows系统服务程序【转帖】
- 用Delphi创建服务程序
- 严重: 监听程序未启动或数据库服务未注册到该监听程序。启动该监听程序并注册数据库服
- Enterprise Manager配置失败-监听程序未启动或数据库服务未注册到该监听程序解决办法
- C++编写及注册windows服务程序
- Windows 程序注册成服务的方法
- Delphi 实现卸载Windows应用程序(类似360软件管家-卸载程序)