gpt4 book ai didi

Delphi Windows 服务命令行参数

转载 作者:行者123 更新时间:2023-12-03 14:56:17 26 4
gpt4 key购买 nike

我有一个基于 Deplhi 的 Windows 服务,在安装时会解析一些命令行参数。我希望将这些参数添加到服务命令行(注册表上的 ImagePath 值),以便服务始终使用它们启动。

我怎样才能做到这一点?

我希望注册表看起来像这样:
位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MyService

  • ImagePath = C:\Path\to\my\service.exe <strong>-some -arguments</strong>

谢谢

更新:安装已完成 >MyService.exe /install -some -arguments 。这些参数是我想在命令行中保留的参数。

更新:我通过直接写入注册表找到了解决方案(请参阅 here ),但我仍然想要一个更优雅的解决方案,例如使用某些 TService 属性或类似的东西。谢谢!

最佳答案

好吧,经过一番研究,我放弃了一种优雅的方法,而采取了直接写入注册表的直接路径。

为了简单起见,我这样做了:我将想要传递的参数存储在 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;

这不是我一直在寻找的优雅解决方案,但它可以完成任务。

感谢您的其他回答!

关于Delphi Windows 服务命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/393742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com