Хорошо, после некоторого исследования я отказался от элегантного подхода и выбрал прямой путь записи непосредственно в реестр.
Чтобы упростить задачу, я сделал это: я храню аргументы, которые я хотел передать, в переменных TService. Затем я установил событие AfterInstall для записи непосредственно в реестр (используя объект TRegistry) нужной мне командной строки.
uses Registry;
procedure MyService.AfterInstall(Sender: TObject) ;
var
reg:TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := 'HKEY_LOCAL_MACHINE';
if reg.OpenKey('SYSTEM\CurrentControlSet\Services\MyService', True) then
begin
reg.WriteExtendString ('ImagePath', ParamStr(0) + ' -some -arguments') ;
reg.CloseKey;
end;
finally
reg.Free;
end;
end;
Не то элегантное решение, которое я искал, но оно делает свою работу.
Спасибо за другие ответы через!