1. 简介
Inno Setup是一款功能强大、免费的安装程序制作工具,广泛用于创建Windows应用程序的专业安装包。本文将以"CUMT校园网自动登录工具"为例,详细介绍如何使用Inno Setup创建一个功能完善的安装程序。
2. Inno Setup脚本概述
Inno Setup使用脚本语言来定义安装程序的行为。以下是一个基本的脚本结构:
; 定义应用程序信息
#define MyAppName "CUMT校园网自动登录工具"
#define MyAppVersion "1.0.2"
#define MyAppPublisher "MuQYY"
#define MyAppExeName "auto_login_app.exe"
[Setup]
; 安装程序的基本设置
[Languages]
; 定义安装程序支持的语言
[Tasks]
; 定义安装过程中的可选任务
[Files]
; 指定要安装的文件
[Icons]
; 创建快捷方式
[Run]
; 安装后运行的命令
3. 主要部分详解
3.1 [Setup]部分
这部分定义了安装程序的基本属性,如应用名称、版本、发布者等。
[Setup]
AppId={1234567A-89BC-DEF0-1234-567890ABCDEF}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={autopf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=D:\Installers
OutputBaseFilename=CUMTAutoLoginSetup_{#MyAppVersion}
Compression=lzma
SolidCompression=yes
WizardStyle=modern
注意事项:
AppId应该使用唯一的GUIDOutputDir指定安装程序输出目录Compression和SolidCompression用于优化安装包大小
3.2 [Languages]部分
指定安装程序支持的语言。
[Languages]
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
这里我们选择了简体中文作为安装程序的语言。
3.3 [Tasks]部分
定义安装过程中的可选任务。
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
这里添加了创建桌面图标的可选任务。
3.4 [Files]部分
定义需要安装的文件。
[Files]
Source: "D:\Output\auto_login_app\auto_login_app.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Output\auto_login_app\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
这部分指定了要复制到安装目录的文件和文件夹。
3.5 [Icons]部分
创建开始菜单和桌面快捷方式。
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
3.6 [Run]部分
定义安装完成后的操作。
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
这里添加了安装完成后启动应用程序的选项。
4. 高级功能:检测并卸载旧版本
使用[Code]部分可以添加自定义Pascal脚本,实现更复杂的功能,如检测并卸载旧版本。
[Code]
function GetUninstallString(): string;
var
sUnInstPath: string;
sUnInstallString: String;
begin
Result := '';
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
Result := sUnInstallString;
end;
function IsUpgrade(): Boolean;
begin
Result := (GetUninstallString() <> '');
end;
function InitializeSetup(): Boolean;
var
V: Integer;
iResultCode: Integer;
sUnInstallString: string;
begin
Result := True;
if IsUpgrade() then
begin
V := MsgBox(ExpandConstant('检测到旧版本,是否卸载?'), mbInformation, MB_YESNO or MB_DEFBUTTON1)
if V = IDYES then
begin
sUnInstallString := GetUninstallString();
sUnInstallString := RemoveQuotes(sUnInstallString);
Exec(ExpandConstant(sUnInstallString), '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode);
Result := True;
end
else
Result := False;
end;
end;
这段代码的主要功能是:
- 检测是否存在旧版本
- 如果存在,询问用户是否卸载
- 如果用户同意,则静默卸载旧版本
5. 编译和测试
- 打开Inno Setup Compiler
- 将上述所有代码复制到一个新的脚本文件中
- 点击"编译"按钮生成安装程序
- 运行生成的安装程序进行测试
6. 注意事项
- 始终为您的应用程序使用唯一的AppId
- 正确处理文件权限和UAC提升
- 提供清晰的安装向导和卸载选项
- 考虑添加许可协议和自定义页面
- 定期测试安装程序,确保在不同Windows版本上的兼容性
7. 总结
Inno Setup是一个强大而灵活的工具,可以帮助开发者创建专业的安装程序。通过本文的示例,您应该能够为自己的应用程序创建一个功能完善的安装包,包括检测和卸载旧版本、创建快捷方式、支持多语言等高级功能。
随着经验的积累,您可以进一步探索Inno Setup的更多高级特性,如自定义安装页面、添加注册表项、创建服务等,以满足更复杂的安装需求。
希望本文对您利用Inno Setup创建软件安装包有所帮助。如果您在使用过程中遇到任何问题,欢迎查阅Inno Setup的官方文档或在相关论坛寻求帮助。
© 版权声明
版权声明
- 1本网站名称:MuQYY
- 2本站永久网址:www.muqyy.top
- 3本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 微信:bwj-1215 进行删除处理。
- 4本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
- 5本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
- 6本站资源大多存储在云盘,如发现链接失效,请联系我们我们会在第一时间更新。
THE END






暂无评论内容