软件安装程序原理代码编写

  • 1、前言
  • 2、要求
    • 2.1、安装程序有一个安装界面(支持图片和动画)
    • 2.2、添加软件许可界面
    • 2.3、添加软件信息界面
    • 2.4、添加支持安装路径
    • 2.5、添加了安装进度界面以及安装的详细信息
    • 2.6、添加了安装完成界面
    • 2.7、界面上的显示的东西都可以自定义
  • 3、技术路线
    • 1、控制台实现引导程序
    • 2、添加安装界面
    • 3、添加打包文件
  • 4、存在的难题
    • 4.1、问题1
    • 4.2、问题2
  • 5、思路

1、前言

最近有童鞋给我留言说我之前写的软件安装界面有点丑而且缺少很多功能。因为当时只是为了实现安装,所以使用了MFC作为安装界面,大家也知道,MFC做界面确实不咋滴。所以我将软件安装界面用Qt进行了重写。同时也将安装过程和大家分享一下。当然,不同的打包软件出来的安装包可能与本文介绍的不一样,所以大家不要喷我。

2、要求

用Qt将安装程序重写,使得支持一下几个要求:

2.1、安装程序有一个安装界面(支持图片和动画)

2.2、添加软件许可界面

2.3、添加软件信息界面

2.4、添加支持安装路径

2.5、添加了安装进度界面以及安装的详细信息

2.6、添加了安装完成界面

2.7、界面上的显示的东西都可以自定义

3、技术路线

1、控制台实现引导程序

2、添加安装界面

3、添加打包文件

4、存在的难题

4.1、问题1

安装程序是使用Qt写的,但是Qt程序运行必须要在Qt环境下运行,比如exe程序必须要和QtxCore.dll、QtxGui.dll、QtxWidgets.dll等dll文件放在一起才能执行,否则就会报以下错误:

当然我们把exe文件放到这些dll文件夹下,那么就会引起第二个问题。

4.2、问题2

软件安装程序都是一个exe文件,不可能说是多个文件。所以在这里我们又如何将安装界面组装到我们安装程序中呢!

5、思路

我这里使用了C++控制台程序作为安装软件的引导程序,这个引导程序有两个作用:
第一:在命令行中执行引导程序,并且后面带有一个文件夹(安装界面)路径作为参数时,引导程序会将文件进行压缩,然后作为引导程序资源文件写入。
第二:当直接运行引导程序时,引导程序首先释放安装界面到一个隐藏的文件夹中,然后再创建一个进程启动安装界面,在启动安装界面的时候,将自己的文件路径作为命令行参数传递给安装界面。安装界面启动之后,首先根据传入参数,进行解析EXE,获取安装界面上显示的图片、动画以及文字等信息。最后当安装界面点击安装时,再深层次解析EXE,将打包文件释放到指定的文件夹中,从而进行对软件的安装。

软件打包安装工具第二篇(引导程序源码)
软件打包安装工具第三篇(安装程序源码)

软件打包安装工具第一篇(安装包原理)相关推荐

  1. 软件打包安装工具第四篇(打包工具原理及技术)

    打包工具原理及技术 1.MV模型 2.打包原理 2.1.方案一 2.2.方案二 3.结束语 1.MV模型 打包工具采用的是MV模型,采用此模型的原因是因为打包界面中打包列表.文件列表以及属性面板显示的 ...

  2. Qt打包成setup.exe安装包

    Qt打包成setup.exe安装包 一.简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复 ...

  3. 【Electron】 NSIS 打包 Electron 生成exe安装包

    上一篇文章[Electron] Electron 开发桌面应用(一) 编写→运行→打包我们已经得到了electron打包好的应用了,目录如下,但是我们如何整合成一个安装程序,发给客户使用呢? 这一篇文 ...

  4. 自动化数控编程软件 CAMWorks 2021 for SolidWorks 安装包及安装教程

    [软件名称]:CAMWorks 2021 for SolidWorks [软件安装包下载]:迅雷云盘迅雷云盘https://pan.xunlei.com/s/VNTHeeC_cDmMoWl6qELh5 ...

  5. maya安装步骤 新手安装软件基础教程(附安装包)

    maya安装步骤 新手安装软件基础教程(简介附安装包) maya2020链接:https://pan.baidu.com/s/1MxV0GrupP32cBrDgpD1CLA 提取码:u22v 学习交流 ...

  6. 金蝶软件安装时,提示安装包配置文件(Setup.Lst)文件不存在无法安装处理方法

    最近安装包文件转移到了另外一台服务器上,访问共享安装包,点击setup安装,弹出警示窗口,提示"安装包配置文件(setup.lst)文件不存在",无法进行客户端软件安装,可是此安装 ...

  7. 性化地图制作软件OpenOrienteering Mapper(附安装包)

    01 概述 众所周知,百度和高德地图都有提供个性化地图,其中百度的个性化地图可以在水经微图中进行定制和下载,但是这些个性化地图只能修改样式,并不能够增加要素或者修改要素的空间位置,如果要完全个性化定制 ...

  8. 服务器系统linux下载软件,Linux服务器管理系统一键安装包(wdcp Lanmp)

    wdcp (WDlinux Control Panel) 是一套用PHP开发的Linux服务器管理系统,旨在易于使用和管理Linux服务器,可以在线通过网页管理服务器和虚拟主机.简单,方便,易操作.只 ...

  9. linux系统安装tv软件下载,Linux版TeamViewer安装包下载

    Linux版teamviewer安装包适合在Ubuntu.Debian Red Hat.CentOS.Fedora系统上安装. 具体环境: Debian 9(包括Raspbian) Ubuntu16. ...

最新文章

  1. NumPy学的还不错?来试试这20题
  2. cpp cu入门教程
  3. adams齿轮齿条怎么定义接触_在SolidWorks里对标准齿轮、齿条的修改应用
  4. [嵌入式]Bootloader的作用
  5. Spark常规性能调优二:RDD 优化
  6. 机器人编程与python语言的区别_儿童编程和机器人编程有啥区别?
  7. java生成二维码读取二维码,面试真题解析
  8. 数据聚合与分组运算——GroupBy
  9. 红黑树 RBTree
  10. 储能系统下垂控制,蓄电池通过双向dc/dc变换器并联负载,变换器输出电流按虚拟电阻比例分配
  11. mysql查看有哪些函数_MySQL函数一览_MySQL函数全部汇总
  12. 【STM32】基于STM32F407实现串口通信
  13. 新手练字又快又好的方法
  14. 【导航算法】无人机路径跟踪L1导航算法
  15. pc电脑微信多开的方法,无需安装任何工具2022
  16. 一个简单的loding
  17. 膨胀卷积的缺点_卷积、反卷积与膨胀卷积
  18. 【UML】UML建模
  19. SATA SSD需要NCQ开启吗?
  20. 星环科技StellarDB4.0正式发布:性能数倍提升,万亿级图数据库挖掘海量数据互联价值

热门文章

  1. java小游戏-扫雷游戏
  2. visio2007类图实现关系
  3. day01_html学习笔记
  4. amd cpu linux 驱动,AMD最新显卡Linux版催化剂驱动下载
  5. 游戏心得:解决在win7下不能安装apploc.msi(applocale)
  6. 分布式系统中一致性哈希算法-简介
  7. Windows重装系统及安装教程(详解)
  8. 申请域名绑定IP开通80端口记录
  9. git clone或git pull时速度很慢
  10. 阿里如何用 AI 写代码?