分类

首页 > 软件资讯 > 软件教程 > 正文

Inno Setup环境变量设置教程

作者:小黑游戏   来源:本站整理   时间:2020-06-17 03:48

Inno Setup是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。该软件用Delphi写成,它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。下面小编就给大家介绍一下Inno Setup的一些常规用法!

Inno Setup环境变量设置教程

InnoSetup使用的是Pascal脚本,即Delphi的编程语言系!

InnoSetup程序的工程文件一般为*.iss(表示 Inno Setup Script) 的扩展名。脚本类似windows中的ini配置文件框架,支持 A C-like #include 指示,从个别文件放入行到 #include 指示位置的脚本。如:#include "filename.txt",
文件包括

[Setup]

这个段包含用于安装程序和卸载程序的全局设置。某些提示对于你创建的任何安装程序都是必需的。这是 [Setup] 段的一个示例:

[Setup]
AppName=My Program
AppVerName=My Program version 1.4
DefaultDirName={pf}/My Program
DefaultGroupName=My Program

[Types]

这个段是可选的。它用来定义安装程序向导在选择组件面时可供选择的所有安装类型。如果你在 [Components] 段定义了组件,但没有定义类型,在编译时将创建一个默认的安装类型设置。如果你正在使用默认 (简体中文) 消息文件,这些类型等同于下面示例中的类型。例如:

[Types]
Name: "full"; Description: "完全安装"
Name: "compact"; Description: "简洁安装"
Name: "custom"; Description: "自定义安装"; Flags: iscustom


[Components]

这个段是可选的。它定义安装程序向导的选择组件页中显示的所有组件,以便于用户定制安装类型。 光用它一个组件不会做任何事情: 它需要“链接”到其它安装条目。请查阅组件和任务参数。 这里是一个 [Components] 段的示例:

[Components]
Name: "main"; Description: "主文件"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "帮助文件"; Types: full
Name: "help/english"; Description: "English"; Types: full
Name: "help/dutch"; Description: "简体中文"; Types: ful

[Tasks]

这个段是只选的。它定义安装程序在执行安装期间所有由用户定制的任务。这些任务以选项框和单选项形式在附加任务向导页中出现。
光任务本身是不会做任何事情的: 它需要“链接”到其它安装条目。查阅组件和任务参数。 这里是一个 [Tasks] 段的示例:

[Tasks]
Name: desktopicon; Description: "创建桌面快捷方式(&D)"; GroupDescription: "添加快捷方式:"; Components: main
Name: desktopicon/common; Description: "对于所有用户"; GroupDescription: "添加快捷方式:"; Components: main; Flags: exclusive
Name: desktopicon/user; Description: "仅对当前用户"; GroupDescription: "添加快捷方式: quicklaunchicon; Description: "创建快速运行栏快捷方式(&Q)"; GroupDescription: "添加快捷方式:"; Components: main; Flags: unchecked
Name: associate; Description: "文件关联(&A)"; GroupDescription: "其它任务:"; Flags: unchecked

[Dirs]

这个可选段用来定义除创建用户选择的应用程序目录外安装程序自动创建的另外目录。在主应用程序目录下创建子目录对于这个段是公共使用的。 请注意,在使用 [Files] 段安装文件前你无需一定要创建目录,这个段起初用于创建一个空的目录。 这里是一个 [Dirs] 段的示例:

[Dirs]
Name: "{app}/data"
Name: "{app}/bin

[Files]

这是定义安装程序安装文件到用户系统中的可选文件段。 这里是一个 [Files] 段的示例:

[Files]
Source: "CTL3DV2.DLL"; DestDir: "{sys}"; Flags: onlyifdoesntexist uninsneveruninstall
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYPROG.HLP"; DestDir: "{app}"
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadm

[Icons]

这个可选段定义所有创建在开始菜单和/或其它位置 (比如桌面) 的快捷方式。
这里是 [Icons] 段的例子:

[Icons]
Name: "{group}/My Program"; Filename: "{app}/MYPROG.EXE"; WorkingDir: "{app}"
Name: "{group}/Uninstall My Program"; Filename: "{uninstallexe}


[INI]

这是你希望安装程序在用户系统中设置 .INI 文件条目的可选段。这里是 [INI] 段的例子:

[INI]
Filename: "{win}/MYPROG.INI"; Section: "InstallSettings"; Flags: uninsdeletesection
Filename: "{win}/MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"

[Languages]

Inno Setup 支持多语言安装。[Languages] 段用来定义安装程序中可使用的语言。
安装程序用下列顺序确定在消息中默认使用的语言:

1. 搜索 LanguageID 设置的语言 (通常指定在语言文件 .isl 的 [LangOptions] 段) 匹配首选语言标识和当前用户界面语言或本地 (根据 LanguageDetectionMethod) 子语言标识两者。
2. 如果未发现,只搜索匹配的首选语言标识。如果两个或多个可用文有相同的首选语言标识,它将使用在 [Languages] 段中列出的第一个。

3. 如果未发现,默认为指定在 [Languages] 段的第一个语言。

如果 [Setup] 段的 ShowLanguageDialog 指示设置为 yes (默认),将显示一个选择语言对话框,使用户有机会忽略语言安装选择。

ShowLanguageDialog 指示设置为 yes (默认),将显示一个选择语言对话框,使用户有机会忽略语言安装选择。

下面是 [Languages] 段的一个示例。它定义两个语言: 简体中文,根据标准的汉化版的 Default.isl 文件,以及英语,原版的语言文件,汉化版中已包括。

[Languages]

Name: "chs"; MessagesFile: "compiler:Default.isl"

Name: "en"; MessagesFile: "compiler:English.isl"

[Messages]

[Messages] 段用于定义显示在安装程序和卸载程序中的消息。通常,你不需要在你的脚本中创建 [Messages] 段,按默认,所有的消息在 Inno Setup 的 Default.isl 文件 (或在 [Languages] 段指定的条目) 中已经包含。
但是,一些特殊的消息可以用创建在脚本文件 [Messages] 段的内容覆盖。要覆盖消息,首先你需要知道你想更的消息 ID。这可以通过搜索 Default.isl 很容易地找到。例如,你想改变向导页“&Next >”按钮为“前进(&F) >”,此消息的 ID 是“ButtonNext”,所以你只要在 [Messages] 段写入下面的内容:

[Messages]
ButtonNext=前进(&F) >

[LangOptions]

[LangOptions] 段用于定义特殊语言设置,象字体一样,被安装程序和卸载程序使用。通常,你不需要在你的脚本中创建 [LangOptions] 按默认,所有的特殊语言设置在 Inno Setup 的 Default.isl 文件 (或在 [Languages] 段指定的条目) 中已经包含。下面是 [LangOptions] 段的一个例子。(下面列出的设置是默认值。)

[LangOptions]
LanguageName=English
LanguageID=$0409
DialogFontName=
DialogFontSize=8
WelcomeFontName=Verdana
WelcomeFontSize=12
TitleFontName=Arial
TitleFontSize=29
CopyrightFontName=Arial
CopyrightFontSize=8

[Registry]

这个可选段用来定义一些你想用安装程序在用户系统中创建、修改或删除的注册表键/值。按默认,用安装程序创建的注册表键和值在卸载时不删除。如果你想让卸载程序删除键或值,你必须包含下面 uninsdelete* 标记中的一个。下面是 [Registry] 段的一个示例。

[Registry]
Root: HKCU; Subkey: "Software/My Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software/My Company/My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software/My Company"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software/My Company/My Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software/My Company/My Program"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"

[Run]

[Run] 段是可选的,用来指定程序完成安装后、在安装程序显示最终对话框之前要执行的程序数,[UninstallRun] 段也可样是可选的,用来指定在卸载第一步要执行的程序数。除在下面有注释的外,两个段用相同的语法。
程序按它们在脚本中的出现顺序执行。当处理 [Run]/[UninstallRun] 段条目时,安装程序/卸载程序将在处理下一个任务之前等待,直到程序终止。除非使用了 nowait,shellexec 或 waituntilidle 标记。
注意,按默认,如果 [Run] 段队列文件中的一个正在执行的程序要在下一次重新启动后替换 (通过调用 MoveFileEx 或通过修改 wininit.ini),安装程序将进行侦测,并在安装结束后提示用户重新启动电脑。如果你不想这么做,设置 RestartIfNeededByRun 指示为 no。下面是 [Run] 段的一个示例。

[Run]
Filename: "{app}/INIT.EXE"; Parameters: "/x"
Filename: "{app}/README.TXT"; Description: "查看自述文件"; Flags: postinstall shellexec skipifsilent
Filename: "{app}/MYPROG.EXE"; Description: "运行应用程序"; Flags: postinstall nowait skipifsilent unchecked

[UninstallDelete]

这个可选段定义你想让卸载程序删除除用 [Files] 或 [Dirs] 条目安装/创建外的其它文件或目录,或由你应用程序创建的一些公共使用的 .INI 文件。卸载程序在卸载时最后一步处理这些条目。 这里是 [UninstallDelete] 段的一个示例:

[UninstallDelete]
Type: files; Name: "{win}/MYPROG.INI"

InnoSetup脚本中可以潜入大量常量,这些预定义的字符被包括在{ }中。例如:{app}为用户在安装向导中的选择目标位置页中选定的应用程序目录,如果你在项目中指定了 {app}/MYEXE.EXE,用户选择了“C:/MYDIR”作为应用程序目录,安装程序将该文件安装到“C:/MYDIR/MYEXE.EXE”。

{win}
系统的 Windows 目录。
例如: 如果你在条目中使用了 {win}/MYPROG.INI,且系统的 Windows 目录是“C:/WINDOWS”安装程序将它传送到“C:/WINDOWS/MYPROG.INI”。

{sys}
系统的 Windows System 目录 (在 NT 平台上是 System32)。
例如: 如果你在条目中使用了 {sys}/CTL3D32.DLL,且系统的 Windows System 目录是“C:/WINDOWS/SYSTEM”,安装程序将它传送到“C:/WINDOWS/SYSTEM/CTL3D32.DLL”。
{src}

安装程序文件所在目录。
例如: 你在条目中使用了 {src}/MYPROG.EXE,且用户正在从“S:/”进行安装,安装程序将它传送到“S:/MYPROG.EXE”。

{sd}
Windows 系统所在的驱动器。一般来说是“C:”。在 Windows NT 平台,这个目录常量等同于 SystemDrive 环境变量。
{pf}
程序文件位置。系统的 Program Files 目录的路径,一般来说是“C:/Program Files”。
{cf}
公共文件目录。系统的 Common Files 目录路径,一般来说是“C:/Program Files/Common Files”。
{tmp}
临时目录。这不是用户的 TEMP 环境变量值。它是在安装程序启动后在用户临时目录中创建的子目录 (象名为“C:/WINDOWS/TEMP/IS-xxxxx.tmp”)。目录中的所有文件和子目录在安装程序退出时删除。这主要用于提取在 [Run] 段运行、但安装后不再需要的文件。

{fonts}
字体目录。通常是在 Windows 下面的名字“FONTS”的目录。
{dao}
DAO 目录,等同于 {cf}/Microsoft Shared/DAO。

{group}
开始菜单文件夹路径,由用户在安装程序的选择开始菜单文件夹向导页中选定。在 Windows NT/2000/XP,这个文件夹总是创建在所有用户配置文件下,除非非用户安装程序的用户没有管理员权限,这种情况下它将创建在用户配置文件下。

{localappdata}
本地应用程序数据文件夹。

{sendto}
当前用户的 Send To 文件夹路径。(这里不是指公共 Send To 文件夹。)

{userappdata} 和 {commonappdata}
应用程序数据文件夹路径。

{userdesktop} 和 {commondesktop} *
桌面文件夹路径。

{userdocs} 和 {commondocs}
我的文档 (My Documents) 文件夹路径 (在 NT 4.0,私人文件夹)。

{userfavorites} 和 {commonfavorites} *
收藏夹文件夹路径。这些常量设置必须 至少“4.1, 4” MinVersion 设置。只在 Windows 2000 和更高版本支持 {commonfavorites};如果在先前的 Windows 版本中使用,它将翻译为等同于 {userfavorites} 目录。

{userprograms} 和 {commonprograms} *
开始菜单中程序文件夹路径。

{userstartmenu} 和 {commonstartmenu} *
开始菜单顶层路径。

{userstartup} 和 {commonstartup} *
开始菜单启动文件夹路径。

{usertemplates} 和 {commontemplates} *
临时文件夹路径。仅在 Windows 2000 和更高版本支持 {commontemplates},如果使用的是先前的 Windows 版本,它将被翻译为等同于 {usertemplates} 目录

{ini:Filename,Section,Key|DefaultValue}
从 .INI 文件插入一个值

示例: {ini:{win}/MyProg.ini,Settings,Path|{pf}/My Program}

{reg:HKxx/SubkeyName,ValueName|DefaultValue}
插入一个注册表值

示例: {reg:HKLM/Software/My Program,Path|{pf}/My Program

{srcexe}
安装程序文件的完整路径名,例如“C:/SETUP.EXE”。
{sysuserinfoname}
{sysuserinfoorg}
Windows 已许可的名字和组织,这个信息从注册表中读取。
{uninstallexe}
由安装程序提取的卸载程序的完整路径名,例如“C:/Program Files/My Program/unins000.exe”。这个常量一般用于在 [Icons] 段条目创建一个卸载图标。它只在 Uninstallable 设为 yes (默认设置) 时有效。
{userinfoname}
{userinfoorg}
{userinfoserial}
用户在用户信息向导页 (可以通过 UserInfoPage 指示来启用) 中分别输入的名字,组织和序列号。一般来说,这些常量用于在 [Registry] 或 [INI] 条目中保存它们以后要使用的值。
{username}
正在运行安装程序的用户的名字 (也可以用 GetUserName 函数返回)。

InnoSetup有三个可选的被所有段条目支持的参数,它们是:

Languages:支持语言,即用户选择安装语言的存储值!例如:Languages: en nl

MinVersion:指定条目要进行处理的最小 Windows 版本 Windows NT 版本。例如:MinVersion: 4.0,4.0

OnlyBelowVersion:制定不处理的最小版本号,用法通上!

废话也说了这么多,提供给大家两个小例子,仅供参考!

(1.大学时候给兄弟做的毕业课程设计中的例子)

[Setup]
;安装界面左上角程序名
AppName=车次查询系统
AppVerName=车次查询系统 版本 1.1
;默认安装目录、默认安装目录名
DefaultDirName={pf}/车次查询系统
DefaultGroupName=车次查询系统
;选择是否创建图标
AllowNoIcons=1
;是否进行选择安装模式
AlwaysShowComponentsList=1
;设置选择目录项
AlwaysShowDirOnReadyPage=1
;设置开始菜单文件夹名
AlwaysShowGroupOnReadyPage=1
AppCopyright=Copyright 2007 GeniusCompany, Inc.
AppPublisher=GeniusCompany, Inc.
AppPublisherURL=http://blog.sina.com.cn/vistablog
AppVersion=1.1
;可重新修复软件
AppModifyPath="{app}/Setup.exe" /modify=1
;资源管理器更改环境变量
;ChangesEnvironment=1
;提示输入用户信息
UserInfoPage=1
;默认序列号
DefaultUserInfoSerial=yangxi
;密码
Password=genius
;许可文档
LicenseFile=license.txt
;选择目标目录页前显示阅读文档
InfoBeforeFile=infobefore.txt
;安装完成后显示阅读文档
;InfoAfterFile=infoafter.txt
;显示启动渐变背景
WindowVisible=1
;安装程序使用“3D”选择框
FlatComponentsList=0
;安装程序指定新图标
SetupIconFile=alawar.ico
;卸载图标
UninstallDisplayIcon={app}/uninstall.ico
[Types]
Name: "full"; Description: "完全安装"
Name: "compact"; Description: "简洁安装"
Name: "custom"; Description: "自定义安装"; Flags: iscustom
[Files]
Source: "db1.mdb"; DestDir: "{app}"

Source: "*.ico"; DestDir: "{app}"
Source: "Workspace.jcw"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
Source: "Design/*.*"; DestDir:"{app}/Design/"
Source: "Design/classes/*.*"; DestDir:"{app}/Design/classes/"
Source: "Design/classes/server/*.*"; DestDir:"{app}/Design/classes/server/"
Source: "Design/classes/cliant/*.*"; DestDir:"{app}/Design/classes/cliant/"
Source: "Design/classes/common/*.*"; DestDir:"{app}/Design/classes/common/"
Source: "Design/classes/myprojects/*.*"; DestDir:"{app}/Design/classes/myprojects/"
Source: "Design/classes/myprojects/design/*.*"; DestDir:"{app}/Design/classes/myprojects/design/"
Source: "Design/common/*.*"; DestDir:"{app}/Design/common/"
[Icons]
;Name: "{userdesktop}/车次查询系统服务器端"; Filename: "{app}/Design/classes/服务器.bat";IconFilename: "{app}/TrainCheck.ico"
Name: "{group}/车次查询系统服务器端"; Filename: "{app}/Design/classes/服务器.bat";IconFilename: "{app}/TrainCheck.ico"
Name: "{group}/车次查询系统客户端"; Filename: "{app}/Design/classes/客户.bat";IconFilename: "{app}/MSN.ICO"
Name: "{group}/卸载车次查询系统"; Filename: "{uninstallexe}";IconFilename: "{app}/uninstall.ico"
[INI]
FileName: "{app}/MyIni.ini"; Section: "InstallSettings";Flags: uninsdeletesection
FileName: "{app}/MyIni.ini"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"
[UninstallDelete]
Type: files; Name: "{app}/MyIni.ini"
;[Registry]
;Root: HKLM; Subkey: "Software/LFQ Company"; Flags: uninsdeletekeyifempty
;Root: HKLM; Subkey: "Software/LFQ Company/车次查询系统"; Flags: uninsdeletekey
;Root: HKLM; Subkey: "Software/LFQ Company/车次查询系统/Settings"; ValueType: string; ValueName: "Path"; ValueData: "{app}"

(2.齐鲁证券的安装文件)

[Setup]
AppName=齐鲁证券行情交易系统
AppVerName=齐鲁证券行情交易系统
AppCopyright=版权所有 1997-2006 恒生信息有限公司
DefaultDirName={pf}/qlzq/
DefaultGroupName=齐鲁投资通
MinVersion=4,4
;CompressLevel=9
;DiskSpanning=Yes
;iskSize=1300000
DisableStartupPrompt=yes
DisableProgramGroupPage=yes
DisableFinishedPage=Yes
AppPublisher=杭州恒生信息技术有限公司
AppPublisherURL=http://www.hsinfo.com.cn

[Files]
;行情部分的文件
Source: "*.dll"; DestDir: "{app}/"; Flags :ignoreversion
Source: "*.exe"; DestDir: "{app}/"; Flags :ignoreversion
Source: "*.ini"; DestDir: "{app}/"; Flags :ignoreversion
;Source: "HQControl.ocx"; DestDir: "{app}/"; Flags :ignoreversion
Source: "Setting/*.*"; DestDir: "{app}/Setting/"; Flags :ignoreversion
Source: "InitDat/*.*"; DestDir: "{app}/InitDat/"; Flags :ignoreversion
Source: "UserDefineIndex/*.*"; DestDir: "{app}/UserDefineIndex/"; Flags :ignoreversion
Source: "SelfTemp/*.*"; DestDir: "{app}/SelfTemp/"; Flags :ignoreversion
Source: "SelfDir/*.*"; DestDir: "{app}/SelfDir/"; Flags :ignoreversion
Source: "Block/*.*"; DestDir: "{app}/Block/"; Flags :ignoreversion
Source: "hqjy.iss"; DestDir: "{app}/"; Flags :ignoreversion
Source: "cacert.pem"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs

[Icons]
Name: "{group}/齐鲁证券投资通行情"; Filename: "{app}/HappyStar.exe"; WorkingDir:"{app}"
Name: "{group}/齐鲁证券交易"; Filename: "{app}/JYClient.exe";WorkingDir:"{app}"
Name: "{group}/卸载行情交易"; Filename: "{app}/unins000.exe"; WorkingDir:"{app}"
Name: "{userdesktop}/齐鲁证券投资通行情"; Filename: "{app}/HappyStar.exe"; WorkingDir:"{app}"
Name: "{userdesktop}/齐鲁证券交易"; Filename: "{app}/jyclient.exe"; WorkingDir:"{app}"

[UninstallDelete]
Type: filesandordirs; Name: "{app}/cell.ini"
Type: filesandordirs; Name: "{app}/cell"
Type: filesandordirs; Name: "{app}/logs"
Type: filesandordirs; Name: "{app}/*.dat"
Type: filesandordirs; Name: "{app}/*.*"

[Run]

手机福利视频播放器推荐
豆奶视频 丝瓜视频 avbobo 包子视频
秋秋影视 香蕉视频 蜜瓜电影 茄子视频
磁力吧 怡春院 电影港 食色抖音
私密免费观看直播吧 逗别看 唇色直播 影豆网
苦瓜网 尘落电影网 4k屋 火豆电影网

Tags:

相关文章

相关下载

猜你喜欢

阅读排行

网友评论

我要跟帖
取消
声明:评论内容只代表网友观点,与本站立场无关!