Inno Setup 安装脚本
Inno Setup 安装脚本 例子1
; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
#define MyAppName "qBittorrentx64"
#define MyAppVersion "1.5"
#define MyAppPublisher "luozaijin"
#define MyAppURL "https://www.luozaijin.top"
#define MyAppExeName "qbittorrent.exe"
#define MyAppAssocName MyAppName + " 文件"
#define MyAppAssocExt ".torrent"
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt
; ❤[ 安装配置信息 ]
[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (若要生成新的 GUID,可在菜单中点击 "工具|生成 GUID"。)
AppId={{5B66C024-A8D5-4C58-ADD9-A761F72D3CEB}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; 以下行取消注释,以在非管理安装模式下运行(仅为当前用户安装)。
;PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=commandline dialog
OutputDir=C:\Users\Administrator\Desktop
OutputBaseFilename=mysetup
SetupIconFile=C:\Users\Administrator\Desktop\qBittorrentx64\ico\btorrent_icon-icons.com_76789.ico
; ✎ [ 压缩模式 ]
DiskSpanning=yes
; 分割文件; yes 或 no
DiskSliceSize=5242880
; 分割文件为Bin格式; 有效值:262144 到 2100000000, 或 max , 默认值: max (2100000000) ; 要优化写入 4.7 GB 可记录 DVD,使用:
Compression=lzma
; 默认值: lzma2/max
; ======== 压缩格式 ========
; 有效值:
; zip
; zip/1 到 zip/9
; bzip
; bzip/1 到 bzip/9
; lzma
; lzma/fast
; lzma/normal
; lzma/max
; lzma/ultra (在使用前请检查下列内存需求)
; lzma/ultra64 (在使用前请检查下列内存需求)
; lzma2
; lzma2/fast
; lzma2/normal
; lzma2/max
; lzma2/ultra (在使用前请检查下列内存需求)
; lzma2/ultra64 (在使用前请检查下列内存需求)
; none
; ========= End =========
SolidCompression=no
; 如果设为 yes,将启用固态压缩。这会使所有文件被一次性压缩来代替分别压缩。你果你的安装程序包含许多相同内容文件,如文本文件,尤其如果这样相同内容的文件被一起组合在 [Files] 区段中,这样将会使总体压缩率大大提高。
; 使用固态压缩的缺点是,由于所有文件都压缩为单个压缩流,因此安装程序无法再随机访问文件。这可能会降低性能。如果不打算在用户的系统上提取某个文件,它必须在解压缩下一个文件之前解压缩该文件的数据(进入内存)。例如,如果在提取特定文件时出现错误并且用户单击“重试”,则它不能只搜索该文件的压缩数据的开头; 因为所有文件都存储在一个流中,所以它一直在寻求。如果启用了磁盘跨越,则用户必须重新插入磁盘1。
; ✎ [ 系统设置 ]
AlwaysRestart=no
; 当设为 yes 时,安装程序不管是否需要,总是在安装结束时提示用户重新启动系统(例如,因为 [Files] 区段条目带有 restartreplace 标志)。
UsePreviousAppDir=yes
; 当该指令设为 yes (默认值),在启动安装程序时将查看在注册表中是否已经安装了相同的应用程序,如果是,它将在向导页面中使用先前的安装目录,作为默认目录提供给用户。
ChangesEnvironment=no
;当该指令设为 yes,在安装结束时,安装程序将会通知其他正在运行的应用程序(尤其是 Windows 资源管理器)应该从注册表重新加载它们的环境变量。如果你的安装创建或更改了一个环境变量,而没有将 ChangesEnvironment 设置为 yes,则新建/更改环境的变量将不被视为从资源管理器由应用程序启动,直到用户注销或重新启动计算机为止。
ChangesAssociations=yes
; 当该指令设为 yes,安装程序将在安装结束时告诉资源管理器刷新它的文件关联信息,并且在卸载完成后执行同样操作。如果你的安装程序创建了文件关联,但没有将 ChangesAssociations 设为 yes,文件类型的正确图标很可能不能显示,直到用户注销或重新启动电脑。
CloseApplicationsFilter={#MyAppExeName}
; 限制安装程序将检查哪些 [Files] 和 [InstallDelete] 项正在使用。只会检查与其中一个通配符匹配的文件。
; ✎ [ 自述文件 ]
InfoAfterFile=
; 指定可选的“自述”文件名称,用 .txt 或 .rtf(富文本)格式,它显示在完成安装之后。在运行编译器时,这个文件必须位于你的安装程序的源目录,除非你指定了文件的完整路径或用“compiler:”作为前缀,在这种场合下它会在编译器目录下查找文件。
InfoBeforeFile=
; 指定可选的“自述”文件名称,用 .txt 或 .rtf(富文本)格式,它显示在用户选择程序的目标目录之前。在运行编译器时,这个文件必须位于你的安装程序的源目录,除非你指定了文件的完整路径或用“compiler:”作为前缀,在这种场合下它会在编译器目录下查找文件。
LicenseFile=
; 指定可选的许可协议文件名称,用 .txt 或 .rtf(富文本)格式,它显示在用户选择程序的目标目录之前。在运行编译器时,这个文件必须位于你的安装的源目录中,除非你指定了文件的完整路径或用“compiler:”作为前缀,在这种场合下它会在编译器目录下查找文件。
; ✎ [ 密码安全 ]
Password=123
; 使用密码时,您可以考虑将 Encryption 设置为 yes, 否则文件将以纯文本形式存储, 并且有人通过逆向工程访问这些文件不会很困难。
Encryption=yes
; 用于加密的密钥是一个 64-位随机的密码值的 160-位 SHA1 杂乱信息。
SetupMutex={#MyAppName}
; 只允许一个安装实例
; ✎ [ 文件权限 ]
PrivilegesRequired=admin
; 此指令会影响在安装启动时是否请求提升权限 (通过 "用户帐户控制" 对话框)。 有效值:admin, 或 lowest
; 设置为 admin (默认值)时,安装程序将始终以管理权限运行,并且处于管理安装模式。如果安装程序是由非特权用户启动的,则 Windows 将向具有管理权限的帐户请求密码,然后安装程序将在该帐户下运行。
; 设置为 lowest 时,安装程序将不会请求使用管理权限运行,即使它是由管理员组的成员启动的,并且始终以非管理安装模式运行。除非您确定安装将在非特权帐户上成功运行,否则请勿使用此设置。
MinVersion=6.1
; 如果用户系统不适合最小版本需求,安装程序将出现一个错误消息并退出。 请注意,这里通常不需要指定构建号(比如你对于 Windows 8,可以简单地使用“6.2”)。 可以访问该页面了解 https://www.sysgeek.cn/windows-operating-system-version-numbers/ 查看当前系统版本 winver
; OnlyBelowVersion=
; OnlyBelowVersion与MinVersion相反, 这是仅能安装的版本
ArchitecturesAllowed=x86 x64
; 指定哪种处理器架构允许安装程序在上面运行。如果这指令没被指定或者是空白的,安装将被允许在能执行它的 32-位代码的全部处理器架构上运行(包含一个它不能识别的)。否则,在该指令中如果用户的处理器架构不是那些指定中的一个,则安装程序将显示一个错误消息并退出。
; 如果你的应用程序的二进制代码都是 32-位并运行在用户模式,你应该不改变来自它默认值(具体的说就是不设置为 x86)的指令,因为通常通过 WOW64 仿真器这样的二进制将运行在不附带在 x64 和 Windows 的 Itanium 版本中。
; 如果你安装任何32-位设备驱动,你应该将此指令设定为 x86,由于32-位设备驱动程序无法运行在64-位 Windows 中。如果你的应用程序的二进制构建成为 X64 或是 Itanium 架构,你应该分别设置该指令为 x64 或 ia64。
ArchitecturesInstallIn64BitMode=
; 如果你的应用程序只运行在 64-位处理器架构中,你应该设置 ArchitecturesAllowed 以同样的值作为该指令来防止安装程序从 32-位 Windows 中运行。
; ✎ [ 自定义显示 ]
WizardStyle=classic
; 安装界面 modern (现代) classic (经典)
DisableWelcomePage=no
; 如果设置为 yes,安装程序将不显示欢迎 向导页面。
WizardImageStretch=yes
; 如果设置为 yes(默认值),向导图像大于或小于所要求的大小时,将拉伸或收缩,例如,如果用户正运行于大字体环境。如果设置为 no,如果向导大于普通模式,向导图像将在各自的范围内居中显示。如果向导小于普通模式,图像将被裁剪显示。(这符合 Inno Setup 4.1.2 及早期版本的默认动作。)
WizardImageFile=
; 指定显示在安装程序向导左边的位图文件名。在运行编译器时,这个文件必须位于你的安装程序的源目录,除非你指定了一个完整的路径名,或路径名用“compiler:”作为前缀,在这种情况下,它将在编译器目录下查找文件。256 色位图可能无法在 256 色模式下正确显示,因为它不处理调色板。指定多个文件时,安装程序将自动选择最符合系统 DPI 设置的文件。
; 每个 DPI 设置的位图建议大小为:
; 100% 164x314 125% 192x386 150% 246x459 175% 273x556 200% 328x604 225% 355x700 250% 410x797
; 如果没有指定此指令或为空白,将使用支持多种 DPI 设置的内置向导图像。
WizardSmallImageFile=
; 指定显示在向导窗口右上角的位图文件名。在运行编译器时,这个文件必须位于你的安装程序的源目录,除非你指定了一个完整的路径名,或路径名用“compiler:”作为前缀,在这种情况下,它将在编译器目录下查找文件。256 色位图在 256 色模式中不能正确显示,它不处理调色板。位图最大尺寸是 55x58 像素。
; 指定多个文件时,安装程序将自动选择最符合系统 DPI 设置的文件。每个 DPI 设置的位图建议大小为:
; 100% 55x55 125% 64x68 150% 83x80 175% 92x97 200% 110x106 225% 119x123 250% 138x140
; 如果没有指定此指令或为空白,将使用支持多种 DPI 设置的内置向导图像。
UninstallDisplayIcon=
; 这个允许您指定一个特定的图标文件(可执行文件或 .ico 文件),来显示在“控制面板”程序中添加/删除程序 的卸载项。文件名通常会以一个目录常量开头。如果你指定的文件包含多个图标,则你可以添加后缀 ",n " 来指定一个图标索引,这里的 n 是基于零的数字索引。如果该指令未被指定或是一个空白,则 Windows 将选择一个自身的图标,这可能不是你喜欢的图标。
AlwaysShowComponentsList=no
; 当该指令设置为 yes,安装程序将总是显示定制安装的组件列表。如果这个设置为 no,安装程序将只在用户在类型列表中选择自定义类型时才显示组件列表。
AlwaysShowDirOnReadyPage=yes
; 当该指令设置为 yes,安装程序将总是在准备安装 向导页面设置列表中显示选择的目录。如果该指令设置为 no,安装程序在 DisableDirPage 设为 yes 的情况下,将不显示目录。
ShowComponentSizes=yes
; 当该指令设置为 yes,安装程序将在组件列表中显示组件大小。根据最大的组件,安装程序将用 KB 或 MB 为单位显示。
ShowTasksTreeLines=yes
; 当该指令设置为 yes时,安装程序将在上级任务和子任务之间显示“树行”。
; ❤ [ 显示信息 ]
[Messages]
BeveledLabel=Inno Setup
; 左下角显示的标签
; ❤ [ 安装语言 ]
[Languages]
Name: chinesesimp; MessagesFile: compiler:Default.isl
; ❤ [ 安装类型 ]
[Types]
Name: full; Description: 全部安装
Name: compact; Description: 最小化安装
Name: custom; Description: 可选安装; Flags: iscustom
; ❤ [ 可选 ] 关联 [ Types ] 语句
[Components]
Name: main; Description: Main Files; Types: full compact custom; Flags: fixed
Name: main1; Description: Main Files1; Types: compact
Name: help; Description: Help Files; Types: full
Name: help\english; Description: English; Types: full
Name: help\dutch; Description: Dutch; Types: full
; ❤ [ 安装任务 ] 通常用于可选快捷键生成, 也可以用于安装任务 关联 [ Components ] 语句
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: q; Description: main or help1; GroupDescription: "附加图标";
Name: s; Description: main or help2; Components: main or help; Flags: checkablealone
; ===========参数说明==========
; Name (必需的) 任务的内部名称。在任务名称中的\或/字符合计数是调用任务的层次。任何在层次 1 或更高层次的任务是子任务。在子任务前列出的小于子任务一个层次的任务是上级任务。其它有相同上级任务的任务之间是同级任务。
; Description (必需的) 任务的描述,可以包含常量。这个描述用于在安装期间显示给最终用户参考。
; GroupDescription 这个任务属于一个用空格隔开的组件列表。如果最终用户从这个列表中选择了一个组件,这个任务将显示。不带组件参数的任务条目总显示。
; Flags 此参数是一组额外选项。可以通过用空格分隔它们来使用多个选项。支持以下选项:
; > checkablealone 指定当一个任务的子任务选中时,该任务是否可以选中。按默认值,如果没有 Tasks 参数直接引用到该任务,未选中所有子任务将会使该任务变成未选中状态。
; > checkedonce告诉安装程序当安装程序找到已经安装的相同的应用程序先前版本时,这个任务开始应该不选中。
; > dontinheritcheck 指定当该任务的上级被选中时,该任务应该不自动变成已选中状态。这对顶层的任务不影响,且不能与 exclusive 标志组合使用。
; > exclusive 告诉安装程序这个任务是与同样有 exclusive 标志的同级任务互斥的。
; > restart 告诉安装程序如果用户安装了这个任务,将询问用户重新启动系统.
; > unchecked 告诉安装程序这个任务在最初应该是不选中。
; ============ End ===========
; ❤ [ 来源文件 ]
[Files]
Source: C:\Users\Administrator\Desktop\qBittorrentx64\{#MyAppExeName}; DestDir: {app}; Flags: ignoreversion
Source: C:\Users\Administrator\Desktop\qBittorrentx64\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
; 安装字体
Source: C:\Users\Administrator\Desktop\qBittorrentx64\Wired.otf; DestDir: "{fonts}"; FontInstall: "Wired"; Flags: onlyifdoesntexist
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
; ❤ [ 注册表 ]
[Registry]
Root: HKCR; SubKey: .torrent; ValueType: string; ValueData: qBittorrent; Flags: uninsclearvalue
Root: HKCR; SubKey: .torrent; ValueType: string; ValueName: torrent; ValueData: qBittorrentx64 文件; Flags: uninsdeletekey
Root: HKCR; SubKey: .torrent\DefaultIcon; ValueType: string; ValueData: {app}\ico\app_x_bittorrent_24636.ico; Flags: uninsdeletekey
Root: HKCR; SubKey: .torrent\shell\open\command; ValueType: string; ValueData: "{app}\qBittorrent.exe ""%1"""; Flags: uninsdeletekey
; ❤ [ 快捷图标 ]
[Icons]
Name: {autoprograms}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {autodesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
; ❤ [ 安装完后可选启动程序 ]
[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifsilent
[Code]
procedure InitializeWizard();
begin
WizardForm.BeveledLabel.Enabled:=true; //充许显示
WizardForm.BeveledLabel.Font.Color:=$00058451;; //显示颜色
WizardForm.BeveledLabel.Font.Style := WizardForm.BeveledLabel.Font.Style + [fsBold]; //显示字体
WizardForm.BeveledLabel.Left:=5; //显示位置
WizardForm.LICENSEACCEPTEDRADIO.Checked := true; // 协议许可页面默认选中我同意按钮
end;
来源
文章编写or整理的内容由作者完成,引用or参考会给出原文链接。