{"id":19739792,"url":"https://github.com/bajins/nsis_setupskin","last_synced_at":"2026-03-02T21:06:05.903Z","repository":{"id":47728278,"uuid":"186165623","full_name":"bajins/NSIS_SetupSkin","owner":"bajins","description":"NSIS打包工具，基于XML可自定义UI","archived":false,"fork":false,"pushed_at":"2020-10-17T12:32:42.000Z","size":236305,"stargazers_count":147,"open_issues_count":3,"forks_count":39,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-10T19:46:15.125Z","etag":null,"topics":["nsis","nsis-completions","nsis-developers","nsis-ide","nsis-installer","nsis-packaging","nsis-plugin","nsis-setupskin","package-manager","packages","packaging","packagist","packer"],"latest_commit_sha":null,"homepage":"","language":"NSIS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bajins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-11T18:01:32.000Z","updated_at":"2025-01-05T06:14:42.000Z","dependencies_parsed_at":"2022-08-28T05:02:12.102Z","dependency_job_id":null,"html_url":"https://github.com/bajins/NSIS_SetupSkin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bajins%2FNSIS_SetupSkin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bajins%2FNSIS_SetupSkin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bajins%2FNSIS_SetupSkin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bajins%2FNSIS_SetupSkin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bajins","download_url":"https://codeload.github.com/bajins/NSIS_SetupSkin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241068282,"owners_count":19904002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nsis","nsis-completions","nsis-developers","nsis-ide","nsis-installer","nsis-packaging","nsis-plugin","nsis-setupskin","package-manager","packages","packaging","packagist","packer"],"created_at":"2024-11-12T01:18:23.023Z","updated_at":"2026-03-02T21:06:05.847Z","avatar_url":"https://github.com/bajins.png","language":"NSIS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NSIS_SetupSkin\n\nNSIS打包工具，基于XML可自定义UI，通过项目[NSIS-UI](https://github.com/hilanmiao/NSIS-UI)找到[nsNiuniuSkin](http://www.ggniu.cn/download.htm)修改而来\n\n\u003e 该安装包界面控件是一个可集成于NSIS的插件，采用Duilib开发，在使用时，安装包制作者只需要做如下两件事情：\n\u003e\u003e 1. 通过配置Duilib的资源，设计好界面显示的元素\n\n\u003e\u003e 2. 在NSIS的脚本中，通过NSIS脚本调用nsNiuniuSkin.dll的相关接口，集成UI及安装包的业务功能 \n\n\u003e 在控件的资源中，采用的是通过TAB控件来实现不同阶段的安装界面，比如：选择路径、许可协议、安装进度、完成、卸载等，在实际使用中，通过NSIS脚本来设置当前需要显示的TAB页，即可完美的呈现出需要的界面UI了。\n\n\n\n* [使用方法](/使用方法.md)\n* [api](/api.md)\n\n\n**[更多打包工具](https://www.bajins.com/Other/Windows%E8%BD%AF%E4%BB%B6.html#%E7%A8%8B%E5%BA%8F%E6%89%93%E5%8C%85)**\n\n\n**关于nsNiuniuSkin License**\n\n* [http://www.ggniu.cn/articles/nsniuniuskin.html](http://www.ggniu.cn/articles/nsniuniuskin.html)\n* [http://www.leeqia.com/nsniuniuskin/download](http://www.leeqia.com/nsniuniuskin/download)\n\n\u003e nsNiuniuSkin是目前国内最专业的安装包UI控件，与NSIS完美融合。同时它也是一个完全免费的安装包UI控件，无任何的使用限制。我们的目标是让稍微有一点NSIS基础的人在一天内完成一个安装包制作。\n\n\n\n**下载软件目录包：**\n\n* [https://gd.bajins.com/PacketTool/software-pkg/](https://gd.bajins.com/PacketTool/software-pkg/)\n* [https://od.bajins.com](https://od.bajins.com)\n\n\n\n## NSIS\n\n* [https://sourceforge.net/projects/nsis](https://sourceforge.net/projects/nsis)\n* [https://nsis.sourceforge.io/Category:Plugins](https://nsis.sourceforge.io/Category:Plugins)\n* [https://sourceforge.net/projects/hmne](https://sourceforge.net/projects/hmne)\n* [http://hmne.sourceforge.net](http://hmne.sourceforge.net)\n\n\n\n\n## 修改如下\n\n- 1、修改目录结构，使项目更加规范：\n  - 对图片文件统一归纳\n  - 对编译bat文件针对每个程序目录放在该目录下\n\n- 2、修改函数调用，使项目更加规范，例如：\n\n\u003e ui.nsh 73-76行\n\n- 3、修改函数中代码块语句错误的bug：\n\n\u003e ui.nsh 第70行\n\n- 4、UI中白色背景时白色按钮不显示修改为黑色按钮可显示：\n\n\u003e install.xml 24-32行\n\n- 5、bat中删除文件时先判断是否存在\n\n- 6、bat中遍历源程序文件夹时先判断是否为空：\n\n\u003e makensiscode.bat 第45行\n\n- 7、产品信息使用变量，避免输入多次可能输错：\n\n\u003e songliwu.nsi 6-10行\n\n- 8、[修改卸载时的提示语中产品名称自动使用变量值](https://github.com/woytu/NSIS_SetupSkin/commit/eeb250b12f9af7851d79d69d8f68608d2e858d6a)\n\n- 9、[所需空间大小使用函数计算FilesToInstall文件夹大小，不再需要手动输入配置](https://github.com/woytu/NSIS_SetupSkin/commit/607abd9502800aac91ba15bb22b0f591a88c5ca0)\n\n\n## 目录结构\n\n```\n.\n│  7z.dll                                   7z压缩dll\n│  7z.exe                                   7z压缩主程序\n│  makeapp.bat                              压缩FilesToInstall文件夹脚本\n│  makensiscode.bat                         不压缩时遍历FilesToInstall文件夹生成编译需要的app.nsh文件\n│  makeskinzip.bat                          压缩SetupScripts/*/skin文件夹\n│  \n├─FilesToInstall                            源程序文件夹\n├─NSIS                                      NSIS主程序文件夹\n├─OriginPlugin                              插件\n└─SetupScripts                               项目UI配置目录\n    │  commonfunc.nsh                        公共函数\n    ├─nim                                    无复选框UI示例\n    │  │  build-nim-nozip.bat                 不带压缩构建脚本\n    │  │  build-nim.bat                       带压缩构建脚本\n    │  │  licence.rtf                         产品许可文件\n    │  │  license.txt\n    │  │  logo.ico                            产品logo图标\n    │  │  nim.nsi                             安装包产品信息定义,引用了ui.nsh\n    │  │  ui.nsh                              UI函数\n    │  │  uninst.ico                          卸载图标\n    │  │  \n    │  └─skin                                 UI配置\n    │      │  configpage.xml                    配置页XML\n    │      │  default.xml                       全局XML\n    │      │  finishpage.xml                    安装完成页XML\n    │      │  install.xml                       安装首页XML\n    │      │  installingpage.xml                安装进行页XML\n    │      │  licensepage.xml                   产品许可页XML\n    │      │  msgBox.xml                        提示消息页XML\n    │      │  uninstallfinishpage.xml           卸载完成页XML\n    │      │  uninstallingpage.xml              卸载进行页XML\n    │      │  uninstallpage.xml                 卸载首页XML\n    │      │  \n    │      ├─form                             公共文件，比如公用图片\n    │      └─public                           独立部件文件\n    │          ├─bk\n    │          ├─button\n    │          ├─caption\n    │          ├─checkbox\n    │          ├─edit\n    │          └─vsrcollbar\n    │                  \n    └─songliwu                                   有复选框UI示例\n        │  build-songliwu-nozip.bat              不带压缩构建脚本\n        │  build-songliwu.bat                    带压缩构建脚本\n        │  license.txt                           产品许可文件\n        │  logo.ico                              产品logo图标\n        │  songliwu.nsi                          安装包产品信息定义,引用了ui.nsh\n        │  ui.nsh                                UI函数\n        │  uninst.ico                            卸载图标\n        │  \n        └─skin                                 UI配置\n            │  configpage.xml                    配置页XML\n            │  default.xml                       全局XML\n            │  finishpage.xml                    安装完成页XML\n            │  install.xml                       安装首页XML\n            │  installingpage.xml                安装进行页XML\n            │  licensepage.xml                   产品许可页XML\n            │  msgBox.xml                        提示消息页XML\n            │  msgBox2.xml\n            │  uninstallfinishpage.xml           卸载完成页XML\n            │  uninstallingpage.xml              卸载进行页XML\n            │  uninstallpage.xml                 卸载首页XML\n            │  \n            └─form                             公共文件，比如公用图片\n```\n\n## 图片示例\n\n![](/images/打包好的程序信息.png)\n![](/images/网易云音乐示例.png)\n![](/images/网易云音乐许可协议页面.png)\n![](/images/有复选框UI.png)\n![](/images/有复选框UI许可协议页面.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbajins%2Fnsis_setupskin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbajins%2Fnsis_setupskin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbajins%2Fnsis_setupskin/lists"}