如何设置 Windows 服务以在重新启动时使用参数?

如何设置 Windows 服务以在重新启动时使用参数?

我读过这篇文章向服务传递参数其中说要编辑 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 中的 ImagePath 注册表项,但是当我重新启动服务时,这种方法不起作用。

如果我使用参数手动启动服务,它会正确运行,但重新启动服务无法保留参数,并且它也无法从注册表中加载。

针对缺少应用程序配置文件的情况,还有其他选择吗?

答案1

@HopelessN00b 链接的答案有@Aaron 的以下评论:

通过对话框输入的参数仅在服务启动时使用手动

也就是说,参数不会使用“正常”方法传递给服务(例如,作为命令行参数);必须编写服务才能读取 ServiceManager 传递的参数。换句话说,尝试argv[]在服务内访问将导致一个空数组。

而是将服务的可执行文件包装在包装器中,然后包装器将使用适当的参数调用实际的服务。

相关内容