Inno setup 的几个常用功能

用 Delphi 开发的程序,安装工具最好的选择是开源的 Inno setup。

这个工具就是在里面写一堆 script 代码。它按照代码打包程序文件。安装时按照代码去释放程序文件。一些复杂的操作,还可以在里面写 script 代码。其 script 代码时 PASCAL 风格的,Delphi 程序员会读起来比较容易看懂。

我在制作安装程序的时候比较关注的几个问题:

1. 在安装程序的制作调试阶段,每次安装都要出现安装目标路径让用户选择。但它默认是第一次有,再次安装就自动安装到之前安装过的目录下,不再显示路径选择界面。解决这个问题:

在 [Setup] 段里面,加上 UsePreviousAppDir =no。

2. 所有的预定义 Define 的常量,引用时,要在前面加上井号(#)。比如:

#define MyAppName "MyAPP"  那么,在引用 “MyAppName” 的时候,需要加上#号,变成 "#MyAppName".

3. 安装完成后,因为安装时允许用户修改安装的目标路径,因此,也许就要修改程序用到的 ini 文件,因为程序也许在 ini 里面有一些和目标路径相关的参数。或者有其它原因需要安装后修改 ini 文件。

增加一个 [INI] 段,然后在这个段底下加上要修改的 ini 文件名和 ini 段名以及要修改的具体项目名称和值。类似代码:

[INI]

Filename: "{app}\{#MyProPath}\ServiceInfo.INI"; Section: "WatchService"; Key: "WatchedName1"; String: "{app}\{#PortMapPath}\abc.doc"

这句话的意思是把 #MyProPath 这个安装路径底下的 ServiceInfo.ini 文件里面的一个 ini Section 叫做 WatchService 里面的一个 ini 的 Kye 为 WatchedName1 的值,改为后面那个 string: 后面的值。

4. 如果安装的是一个服务,则释放完程序后,还要安装服务。安装服务,就是要运行该服务程序,加上 install 参数。在 Inno setup 里面,就是加一个 [RUN] 段,在里面写代码:

[Run]

Filename:"{app}/MyService.EXE"; Parameters:"-install" 

Filename: "net.exe"; Parameters: "start MyService"; Flags:runhidden 

上面第二句则是启动服务。这样,就无需重启电脑,服务就已经启动了。

如果需要在卸载的时候,同时要卸载服务,则增加一个  [UninstallRun] 段,代码:

[UninstallRun]

Filename:"{app}/MyService.EXE"; Parameters:"-uninstall

上述代码,就是在卸载的时候,运行这个服务程序,加上 -uninstall 参数。

 

你可能感兴趣的:(Delphi)