我们已经准备好了,你呢?

2024我们与您携手共赢,助您领跑移动端创新增长!

  此篇文档主要讲述了如何使用Inno Setup制作安装包,如果要打包的内容已经准备好,可以跳过“QT操作”部分。

  QT操作

  1.在QT中将编译模式设置成Release,点击编译后在文件夹中找到生成exe文件,并将其复制出来单独放到一个文件夹中。

  2.考虑到用户可能将软件安装到Program Files (x86)等系统文件夹中,此时如果程序没有管理员权限会出现一些问题,因此可以给编译出的exe添加管理员权限。在工程文件夹中,pro文件的同目录下创建一个.manifest文件,这里笔者用getAdmin.manifest举例。向getAdmin.manifest中写入下列代码。

  1.

  2.

  3.

  4.

  5.

  6.

  7.

  8.

  9.

  10.

  然后找到与工程编译出的exe文件同名的.rc文件,向其中添加下列代码。

  1.1 24 DISCARDABLE "getAdmin.manifest"

  如果没有找到.rc文件,可以自己创建一个,这里笔者使用getAdmin.rc举例。向创建的getAdmin.rc文件中写入上述代码,然后在QT中打开pro文件添加下列语句。

  2.RC_FILE += getAdmin.rc

  以管理员身份运行重新运行QT点击编译,如果此时编译出的exe文件图标的右下角有小盾牌标志,则代表管理员权限添加成功。

  3.通过搜索找到QT 5.14.2(MinGW),版本根据QT工程的编译器选择,如果是32-bit的编译器,那么MinGW就使用32位版本。如果QT工程使用的是MSVC编译器,这里也选择同版本的MSVC编译器。

  4.打开后,输入"cd exe文件的路径"来使该工具找到exe文件存储位置。然后输入"windeployqt 文件名称.exe",该工具会自动添加此exe文件需要的.dall文件。但是该工具添加的.dall文件不一定齐全,所以.dall文件自动添加完毕后,手动点击exe文件,如果报错,则根据提示信息,在QT安装文件夹找到对应的dall文件并手动添加。直到点击exe后能正常打开使用。

  Inno Setup操作

  1.打开Inno Setup后,选择使用向导,根据提示创建一个脚本模板。

  2.点下一步,填写程序信息。

  3.点击浏览,选择之前准备好的exe文件。点击添加文件,把exe文件同一目录下的其它文件全部添加。点击添加文件夹,把exe文件目录下的其它文件夹全部添加。完成后点击下一步。

  4.根据需求选择创建快捷方式,完成点下一步。

  5.许可文件不是必要的,点击浏览可添加安装前和安装后显示信息文件,安装前显示信息文件通常为用户协议。支持txt和rtf文件格式,添加完成后点击下一步。

  6.语言选择中文。

  7.选择编译出的安装包的保存位置、名称和图标,安装密码可以不用设置。

  8.勾选"是,使用#define编译指令",点击下一步完成模板创建。此时会弹出一个提示框询问“是否立即开始编译”,点击否。

  9.对模板生成的添加文件夹的代码进行修改。向导生成的模板代码,会把文件夹中的文件复制到exe同一目录下,并删除原本的文件夹,这会导致安装后的exe文件报错。将代码修改成如下格式,点击编译即可得到一个最简单的安装包。

  1.Source: "C:\Users\21195\Desktop\11\platforms\*"; DestDir: "{app}\platforms"; Flags: ignoreversion recursesubdirs createallsubdirs

  2.Source: "C:\Users\21195\Desktop\11\iconengines\*"; DestDir: "{app}\iconengines"; Flags: ignoreversion recursesubdirs createallsubdirs

  10.在wpInfoBefore页面,即“显示安装前文件”的那个页面,添加一个复选框。复选框显容为“笔者已阅读,并同意该协议”,并将该页面的 “下一步”按钮默认设置为不可用。只有用户勾选复选框,表示同意协议,才能点击下一步继续安装,代码如下。

  1. var

  2. AgreementCheckBox: TNewCheckBox;

  3. procedure AgreementCheckBoxClick(Sender: TObject);

如何开发app安装包(如何使用Inno Setup制作安装包?)

  4. begin

  5. // 更新下一步按钮的状态

  6. WizardForm.NextButton.Enabled := AgreementCheckBox.Checked;

  7. end;

  8. procedure InitializeWizard;

  9. begin

  10. // 创建一个复选框控件

  11.

  12. AgreementCheckBox := TNewCheckBox.Create(WizardForm);

  13. AgreementCheckBox.Parent := WizardForm.InfoBeforePage;

  14. AgreementCheckBox.Left := WizardForm.InfoBeforePage.Left + ScaleX(0);

  15. AgreementCheckBox.Top := WizardForm.InfoBeforePage.Height - ScaleY(22);

  16. AgreementCheckBox.Width := WizardForm.InfoBeforePage.ClientWidth - Scale X(16);

  17. AgreementCheckBox.Caption := '笔者已阅读,并同意该协议';

  18. AgreementCheckBox.Checked := False;

  19. AgreementCheckBox.OnClick := @AgreementCheckBoxClick;

  20.

  21. end;

  22. procedure CurPageChanged(CurPageID: Integer);

  23. begin

  24. // 在InfoBeforePage页面时禁用下一步按钮

  25. if CurPageID = wpInfoBefore then

  26. WizardForm.NextButton.Enabled := False;

  27. end;

  11.为了避免安装时因权限不足发出发生错误,可以给安装包添加管理员权限。在脚本的[Setup]节点添加 PrivilegesRequired=admin。进入Inno Setup安装根目录,找到文件SetupLdr.e32,这是一个二进制配置文件,需要用到ResHacker.exe这个工具修改。找到,修改为,如下图所示。重新编译后若安装包右下角出现小盾牌,则管理员权限添加成功。

  其他文章阅读推荐:

  《革新而来!强适应性串口服务器,RJ45与串口双向互转+多通信机制》

  《高性能低延迟4G CAT1模块,4G全网通+高精度定位》

  《LoRa微型DTU,颠覆设计!无线数传电台体积竟能如此小》

  《三种低功耗模式,多路Socket,超低功耗无线串口Wi-Fi模块》

我们凭借多年的APP小程序开发经验,坚持以“个性定制 源码交付 独立部署 满意为止”为宗旨,累计为5000多家客户提供品质服务,得到了客户的一致好评。即刻开启你的小程序/APP,帮您轻松抢占千亿流量红利,助您轻松获客!
立即咨询: 13716188458 / 18588225959,助您抢占市场先机。项目经理在线

我们已经准备好了,你呢?

北京麦蒙科技有限公司与您携手共赢,助您领跑移动端创新增长

售前咨询
咨询电话

13716188458

18588225959

在线留言
扫码加微信
微信
在线留言
* 请输入姓名
* 请输入有效联系方式
请输入您的需求:
* 请输入需求
提交成功