delphi XE Datasnap SERVER 在windows 7 下为服务添加描述信息
网上对服务添加描述信息的,多数是用注册表的方式,而注册表的方式,我在win7 下测试,不知为什么,总是不行,把执行的CMD以管理员模式开启,还是没加进去。
于是在网上查到下面的代码,保存供叁考,原文博主为某站的:Ψ星泪(JPEXE)
以下代码在delphi 10.2下编译测试通过
uses Winapi.WinSvc;
procedure TServerContainer1.ServiceAfterInstall(Sender: TService);
begin
SetDescription('这是我的datasnap 中间件');
end;
procedure SetDescription(const Desc: string);
var
hSCM:SC_HANDLE;
hService: SC_HANDLE;
sd: SERVICE_DESCRIPTION;
begin
hSCM := Winapi.WinSvc.OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if hSCM = 0 then Exit;
hService := Winapi.WinSvc.OpenService(hSCM, PChar(Self.Name), SERVICE_CHANGE_CONFIG);
if hService = 0 then Exit;
sd.lpDescription := PChar(Desc);
ChangeServiceConfig2(hService, SERVICE_CONFIG_DESCRIPTION, @sd);
Winapi.WinSvc.CloseServiceHandle(hService);
Winapi.WinSvc.CloseServiceHandle(hSCM);
end;