如何使用Inno Setup安装Windows服务?

时间:2013-03-04 15:04:16

标签: service inno-setup

我写了一个批处理脚本,在我用Inno Setup进行安装后执行。问题是我的服务创建有以下命令行:

sc create MySQL start= auto DisplayName= MySQL binPath= "C:\MyApp\MySQL 5.5\bin\mysqld" --defaults-file="C:\MyApp\MySQL 5.5\my.ini"

带有重音符号的字母是这段代码的问题,如果我在cmd中打开bat文件,我就无法执行它,但是当我键入时,正常创建服务。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:14)

而不是直接调用SC,它更清晰(并且更容易处理任何错误或服务依赖性)到use the API。请注意,此示例假定您使用的是ANSI Inno,但为Unicode修改此内容非常简单。

但就个人而言,我更喜欢在服务可执行文件本身中构建install / start / stop / uninstall命令,使其自行注册。显然,这不可能为第三方服务做好准备,但你可以查看它是否已经支持这样的事情。

最后一点是,您不能将路径硬编码到C:文件夹。您应该使用{app}代替。

答案 1 :(得分:4)

您可以尝试将此命令添加到[RUN]部分(如TLama建议的那样)或在AfterInstall部分中创建[CODE]功能。

[Run] 
Filename: "{cmd}"; Parameters: "sc create MySQL start= auto DisplayName= MySQL 
binPath= ""C:\MyApp\MySQL 5.5\bin\mysqld"" 
--defaults-file=""C:\MyApp\MySQL 5.5\my.ini"""; 
Flags: runhidden