Giter Site home page Giter Site logo

bajins / nsis_setupskin Goto Github PK

View Code? Open in Web Editor NEW
136.0 4.0 39.0 230.77 MB

NSIS打包工具,基于XML可自定义UI

NSIS 99.69% Batchfile 0.31%
nsis nsis-packaging packages package-manager packaging packagist packer nsis-setupskin nsis-installer nsis-plugin

nsis_setupskin's Introduction

NSIS_SetupSkin

NSIS打包工具,基于XML可自定义UI,通过项目NSIS-UI找到nsNiuniuSkin修改而来

该安装包界面控件是一个可集成于NSIS的插件,采用Duilib开发,在使用时,安装包制作者只需要做如下两件事情:

  1. 通过配置Duilib的资源,设计好界面显示的元素
  1. 在NSIS的脚本中,通过NSIS脚本调用nsNiuniuSkin.dll的相关接口,集成UI及安装包的业务功能

在控件的资源中,采用的是通过TAB控件来实现不同阶段的安装界面,比如:选择路径、许可协议、安装进度、完成、卸载等,在实际使用中,通过NSIS脚本来设置当前需要显示的TAB页,即可完美的呈现出需要的界面UI了。

更多打包工具

关于nsNiuniuSkin License

nsNiuniuSkin是目前国内最专业的安装包UI控件,与NSIS完美融合。同时它也是一个完全免费的安装包UI控件,无任何的使用限制。我们的目标是让稍微有一点NSIS基础的人在一天内完成一个安装包制作。

下载软件目录包:

NSIS

修改如下

  • 1、修改目录结构,使项目更加规范:

    • 对图片文件统一归纳
    • 对编译bat文件针对每个程序目录放在该目录下
  • 2、修改函数调用,使项目更加规范,例如:

ui.nsh 73-76行

  • 3、修改函数中代码块语句错误的bug:

ui.nsh 第70行

  • 4、UI中白色背景时白色按钮不显示修改为黑色按钮可显示:

install.xml 24-32行

  • 5、bat中删除文件时先判断是否存在

  • 6、bat中遍历源程序文件夹时先判断是否为空:

makensiscode.bat 第45行

  • 7、产品信息使用变量,避免输入多次可能输错:

songliwu.nsi 6-10行

目录结构

.
│  7z.dll                                   7z压缩dll
│  7z.exe                                   7z压缩主程序
│  makeapp.bat                              压缩FilesToInstall文件夹脚本
│  makensiscode.bat                         不压缩时遍历FilesToInstall文件夹生成编译需要的app.nsh文件
│  makeskinzip.bat                          压缩SetupScripts/*/skin文件夹
│  
├─FilesToInstall                            源程序文件夹
├─NSIS                                      NSIS主程序文件夹
├─OriginPlugin                              插件
└─SetupScripts                               项目UI配置目录
    │  commonfunc.nsh                        公共函数
    ├─nim                                    无复选框UI示例
    │  │  build-nim-nozip.bat                 不带压缩构建脚本
    │  │  build-nim.bat                       带压缩构建脚本
    │  │  licence.rtf                         产品许可文件
    │  │  license.txt
    │  │  logo.ico                            产品logo图标
    │  │  nim.nsi                             安装包产品信息定义,引用了ui.nsh
    │  │  ui.nsh                              UI函数
    │  │  uninst.ico                          卸载图标
    │  │  
    │  └─skin                                 UI配置
    │      │  configpage.xml                    配置页XML
    │      │  default.xml                       全局XML
    │      │  finishpage.xml                    安装完成页XML
    │      │  install.xml                       安装首页XML
    │      │  installingpage.xml                安装进行页XML
    │      │  licensepage.xml                   产品许可页XML
    │      │  msgBox.xml                        提示消息页XML
    │      │  uninstallfinishpage.xml           卸载完成页XML
    │      │  uninstallingpage.xml              卸载进行页XML
    │      │  uninstallpage.xml                 卸载首页XML
    │      │  
    │      ├─form                             公共文件,比如公用图片
    │      └─public                           独立部件文件
    │          ├─bk
    │          ├─button
    │          ├─caption
    │          ├─checkbox
    │          ├─edit
    │          └─vsrcollbar
    │                  
    └─songliwu                                   有复选框UI示例
        │  build-songliwu-nozip.bat              不带压缩构建脚本
        │  build-songliwu.bat                    带压缩构建脚本
        │  license.txt                           产品许可文件
        │  logo.ico                              产品logo图标
        │  songliwu.nsi                          安装包产品信息定义,引用了ui.nsh
        │  ui.nsh                                UI函数
        │  uninst.ico                            卸载图标
        │  
        └─skin                                 UI配置
            │  configpage.xml                    配置页XML
            │  default.xml                       全局XML
            │  finishpage.xml                    安装完成页XML
            │  install.xml                       安装首页XML
            │  installingpage.xml                安装进行页XML
            │  licensepage.xml                   产品许可页XML
            │  msgBox.xml                        提示消息页XML
            │  msgBox2.xml
            │  uninstallfinishpage.xml           卸载完成页XML
            │  uninstallingpage.xml              卸载进行页XML
            │  uninstallpage.xml                 卸载首页XML
            │  
            └─form                             公共文件,比如公用图片

图片示例

nsis_setupskin's People

Contributors

bajins avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nsis_setupskin's Issues

可以升级相关依赖嘛?

NSIS 目前最新版是 3.x 仓库里是2.x

我尝试用最新的 NSIS 的覆盖仓库里的. 在补齐相关依赖之后, 还是有报错无法执行下去, 错误截图:
image

由于对 NSIS 并不熟悉, 所以不清楚怎么解决.
希望大佬能瞅两眼帮忙看一看可以吗?

执行build 的 报错 了

File: "logo.ico"->"logo.ico" [compress] 133352/458870 bytes File: "..\app.7z" -> no files found. Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] | /oname=outfile one_file_only) !include: error in script: "..\commonfunc.nsh" on line 138 !include: error in script: "ui.nsh" on line 14 Error in script "D:\Development\NSIS_Script\NSIS_SetupSkin-master\SetupScripts\nim\info.nsi" on line 21 -- aborting creation process
执行的 是 skin 下面的 nim 里面的nsi

求大佬联系方式

有个问题 需要向大佬请教下 就是我需要对输出的目录进行标记写入权限。尝试代码如下 无效 求大佬联系方式 我的QQ 1606726660

	AccessControl::GrantOnFile \
		"$INSTDIR" "(BU)" "FullAccess"
	Pop $R0
        WriteRegStr HKCU "Software\aaaaaaaaa" "Path" "$INSTDIR"
	${If} $R0 == error
		Pop $R0
		WriteRegStr HKCU "Software\aaaaaaaaa" "Error" "AccessControl error: $R0"
  	${EndIf}

	${If} $R0 != error
    	        WriteRegStr HKCU "Software\aaaaaaaaa" "Success" "获取成功"
	${EndIf}

注册表是显示注册成功的 但是当前路径没有权限
QQ截图20200321133501
QQ截图20200321133444

如何获取打包后的 SHA512

你好,感谢你提供的这个项目!有个问题请教下,有办法在打包时像 electron-builder 那样生成 latest.yml 吗?因为 latest.yml 中包含了 SHA512 (base64 格式的)等字段,可用于动态更新版本。

我在使用你的这个项目打包后,只生成了安装包,没有生成类似 latest.yml 相关文件。于是,我尝试借助 nsisWeb 插件在打包时来生成 latest.yml 文件,但在打包时报错 Invalid command: nsisWeb::Publish。

我又尝试通过命令 certutil -hashfile your_client_file.exe SHA512 获取16进制的 SHA512 的哈希值,再把它转换为 base64 ,但好像值也对不上。

请问还有其他方案吗?

自定义界面后如何将license 加载到对应 xml 组件中去

自定义界面后如何将license 加载到对应 xml 组件中去。

你好。目前我的需求是自定义界面显示license许可协议,我在下载了NSIS-UI仓库后,没有找到相关的代码 将license 文件内容赋值到 license.xml的RichEdit 组件中去,您可以告诉我如何将license.rtf文件内容显示到自定义页面的RichEdit组件中或者 告知我具体的代码实现然后大致讲解一下我该如何实现我当前的这个需求吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.