自制简单的安装/卸载程序

来源:互联网 发布:刘亦菲牙齿知乎 编辑:程序博客网 时间:2024/06/11 16:01
个人的工作项目已经完成,在此做了一个删减版的安装/卸载程序,贴出来供大家学习和参考。

先说一下我的实现方法
将发布的程序的运行目录打包成一个Zip文件,以资源方式加入到安装包的工程中,ID为IDR_ZIP1,然后用unzip类将资源释放到指定目录,形成一个安装文件夹,然后在桌面和开始菜单创建启动快捷方式和卸载快捷方式。
卸载的时候先删除相关快捷方式,删除的标准就是遍历lnk,只要其指向本目录,则删除。然后删除所在目录下的所有文件,再删除自身。说到删除自身,是我从网上找的代码,成功率只有20%左右,领导说算了,无大碍,就懒得深究了。。。

再简单介绍一下关键知识点
安装程序:
1.如何获取电脑中的常用目录,如Program Files、桌面、开始菜单的程序目录,详见CInstallSetDlg的构造函数和BOOL CInstallFinishDlg::CreateLnk(IShellLink * psl,UINT uiType,CString strLnkName,BOOL bCreateDir)
2.如何释放资源中的压缩包文件IDR_ZIP1到指定目录下,详见void CInstallCopyDlg::StartCopy(LPCTSTR lpPath)
3.如何为指定exe创建快捷方式,详见BOOL CInstallFinishDlg::CreateLnk(IShellLink * psl,UINT uiType,CString strLnkName,BOOL bCreateDir)
4.unzip.h和unzip.cpp是一个很强大的类,对应的还有zip.h和zip.cpp,网上可以找得到

卸载程序:
1.如何删除指定快捷方式。遍历快捷方式,只要它指向本卸载程序所在的目录,则删除,详见void CUninstallDlg::ClearLnk()和void CUninstallDlg::DeleteLnk(CString strDir,BOOL bDeleteDir)
2.如何删除卸载程序自身。网上找的代码,详见void CUninstallDlg::DeleteSelf()
0 0
原创粉丝点击