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;