安装Delphi服务的可执行文件的路径

时间:2017-09-11 09:00:13

标签: delphi windows-services

有没有办法将Delphi服务的可执行路径放在双引号中?

我创建了一个Delphi服务并使用/ install参数安装它。

如果我通过Windows服务查看属性,可执行文件的路径不会用双引号括起来。

如何用Delphi方式做到这一点?

我正在使用Delphi 7和Windows 2012。

1 个答案:

答案 0 :(得分:2)

TService不支持在安装期间自定义安装路径。您必须使用TService.AfterInstall事件直接编辑注册表。您可以使用ParamStr(0)获取可执行文件路径,然后使用AnsiQuotedStr()为其添加双引号。

procedure TMyService.ServiceAfterInstall(Sender: TService);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.Access := KEY_SET_VALUE;
    if Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\'+Sender.Name, False) then
    try
      Reg.WriteString('ImagePath', AnsiQuoutedStr(ParamStr(0), '"'));
    finally
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
end;