Inno setup 使用SC在Inno安装程序中设置服务属性

Inno setup 使用SC在Inno安装程序中设置服务属性,inno-setup,Inno Setup,在使用SC和Inno设置创建服务时,我试图设置多个属性。到目前为止,我无法100%地实现这一点,我已使服务名称、显示名称、依赖项和描述正常工作。这只是我需要预设的恢复设置。(见图) 我尝试了多种写作方法,我在同一行中尝试了失败和描述部分,并引用了单引号、双引号和漏引号,其中没有一种是我在新行中尝试的,如下所示,这也不起作用。不确定它们是否必须按特定顺序排列 我环顾四周,没有发现任何关于设置恢复设置的内容。例如: 当然,我也看过这里:但我不知道如何将它翻译成inno脚本 我知道这不是做到这一点的

在使用SC和Inno设置创建服务时,我试图设置多个属性。到目前为止,我无法100%地实现这一点,我已使服务名称、显示名称、依赖项和描述正常工作。这只是我需要预设的恢复设置。(见图)

我尝试了多种写作方法,我在同一行中尝试了失败和描述部分,并引用了单引号、双引号和漏引号,其中没有一种是我在新行中尝试的,如下所示,这也不起作用。不确定它们是否必须按特定顺序排列

我环顾四周,没有发现任何关于设置恢复设置的内容。例如: 当然,我也看过这里:但我不知道如何将它翻译成inno脚本

我知道这不是做到这一点的“正确方法”,最好使用pascal代码或使用这些服务脚本,但我只是想了解这种方法,出于我自己的好奇心/教育,而且我还没有找到任何pascal代码的好例子

我确实让服务脚本处理一些pascal代码,方法是将其包含在代码部分,然后使用注册表设置,以便设置它不支持的属性,但是我特别想知道如何使用SC.exe进行同样的操作,以供我自己学习

[Run]
Filename: {sys}\sc.exe; Parameters: "create SERVICENAME start= auto DisplayName= ""SERVICEDISPLAYNAME"" binPath=""{app}\SERVICEEXE.exe"" depend= mpssvc"; Flags: runhidden
Filename: {sys}\sc.exe; Parameters: "failure ""SERVICENAME"" reset= 100 actions= restart/1000/restart/1000"; Flags: runhidden
Filename: {sys}\sc.exe; Parameters: "description SERVICENAME ""SERVICE DESCRIPTION"""; Flags: runhidden


[UninstallRun]
Filename: {sys}\sc.exe; Parameters: "stop SERVICENAME" ; Flags: runhidden
Filename: {sys}\sc.exe; Parameters: "delete SRVICENAME" ; Flags: runhidden

这个问题有点老了,但我从脚本中找到了设置SC故障的解决方案,这可能对其他人有用

报告的问题(未设置恢复操作)是由命令末尾设置的标志(
runhidden
)引起的。如果设置
waituntilterlide
waituntiltermited
,它将正常工作。 但最简单的解决方案是删除该标志,因为
waitUnterminated
是默认标志

Filename: "{sys}\sc.exe"; Parameters: "failure ""MyService"" reset= 86400 actions= restart/60000/restart/60000/restart/60000"
另一件有趣的事情是,
reset
希望以分钟为单位接收时间,但GUI显示天,因此如果值小于84600,则始终显示0天

GUI中的“重启服务后”以分钟为单位,但命令中的“重启服务后”以毫秒为单位,因此,如果大于60000,则仅显示0以外的内容

最后一件事是设置少于3个失败的方法,操作应该是空的,但需要定义一些时间

actions= restart/15000/restart/30000//1000
最后一点在这篇文章中解释: