Inno Setup:使用“sc create”安装Windows服务

时间:2013-05-13 08:44:43

标签: inno-setup

我有两个二进制文件,必须为它们创建服务。我尝试使用How to install a Windows service with Inno Setup?

中的“sc create”解决方案

但它对我不起作用。它在安装结束时卡住了。我做错了什么?

这是我的代码:

Filename: {cmd}; Parameters: "sc create srvname start= auto DisplayName= mysrv binPath= {app}\mybinary.exe" ; Flags: runhidden

我尝试使用cmd代替{cmd} - 没有变化。

我没有在我提到的解决方案中尝试Pascal代码。我将它作为最后的手段。

2 个答案:

答案 0 :(得分:23)

我使用了这段代码,我的两项服务都在安装和卸载:

[run]
Filename: {sys}\sc.exe; Parameters: "create mysrv start= auto binPath= ""{app}\mysrv.exe""" ; Flags: runhidden

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

这解决了我的问题,所以为什么我要在这种情况下使用Pascal。?

答案 1 :(得分:10)

你有没有理由试图通过{cmd}运行它?

添加/C参数并根据需要引用其余参数,或者只使用所需参数运行sc.exe

[Run]
Filename: "sc.exe"; Parameters: "create srvname start= auto DisplayName= mysrv binPath= {app}\mybinary.exe" ; Flags: runhidden 

请注意,安装服务的正确方法是this answer中提到的API,它允许您检测和处理错误。

相关问题