软件安装程序原理代码编写
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,将打包文件释放到指定的文件夹中,从而进行对软件的安装。