# 自解压安装程序 ## 简介 这是一个自解压安装程序工具,可以将多个文件打包成一个单独的可执行文件(.exe),使用户能够通过运行该可执行文件来自动解压并安装所需文件。该工具特别适合于Windows环境下的软件分发和安装。 ## 功能特点 - **自包含**:将安装所需的所有文件打包到一个单独的可执行文件中 - **自动解压**:运行时自动将文件解压到临时目录 - **自动安装**:解压后自动运行安装脚本(install.bat) - **隐藏控制台**:运行过程中隐藏命令行窗口,提供更好的用户体验 - **自定义图标**:支持使用自定义图标(app.ico)美化安装程序 ## 使用方法 ### 创建自解压安装程序 1. 准备以下文件: - `install.bat`:安装脚本,将在解压后自动执行 - `mswsock.dll`:需要打包的DLL文件 - `app.ico`:(可选)自定义图标文件 2. 运行程序: ``` build.exe ``` 3. 程序将生成 `install.exe` 自解压安装文件 ### 使用生成的安装程序 用户只需双击生成的 `install.exe` 文件,程序将: 1. 自动检测是否为自解压模式 2. 将打包的文件解压到临时目录(`%TEMP%\myapp_install`) 3. 自动运行解压后的 `install.bat` 脚本完成安装 ## 技术原理 该程序使用以下技术实现自解压功能: 1. **自检测机制**:通过检查文件末尾的特殊标记来判断是否为自解压模式 2. **文件打包**:使用Go语言的zip库将文件打包成zip格式 3. **数据附加**:将zip数据附加到可执行文件末尾,并添加8字节的大小标记 4. **解压机制**:运行时从自身读取并解压zip数据到临时目录 5. **静默安装**:使用Windows API隐藏控制台窗口,提供无干扰的安装体验 ## 开发说明 ### 程序结构 - `main()`:主函数,判断运行模式并调用相应功能 - `isSelfExtracting()`:检测是否为自解压模式 - `createSelfExtractingExe()`:创建自解压可执行文件 - `extractFiles()`:从自身提取文件到临时目录 - `runInstallBat()`:运行安装脚本 - `addFileToZip()`:将文件添加到zip包 - `hideConsoleWindow()`:隐藏控制台窗口 ### 自定义 - 修改 `requiredFiles` 数组可以更改需要打包的文件列表 - 更换 `app.ico` 文件可以自定义安装程序图标 - 修改 `install.bat` 可以自定义安装过程 ## 注意事项 1. 确保所有需要打包的文件都存在于程序运行目录 2. 如果需要管理员权限运行安装脚本,请在 `install.bat` 中添加相应代码 3. 生成的安装程序可能会被某些杀毒软件误报,这是因为自解压程序的特性与某些恶意软件类似 ## 系统要求 - 操作系统:Windows - 无其他特殊依赖 ## 构建方式 - 生成环境:go mod init build - go generate - 生成图标:rsrc -ico app.ico -o app.syso - 构建32位:set GOARCH=386 - 构建程序:go build -ldflags="-H windowsgui" -o builder.exe