Inetc客户端插件,用于文件的上传和下载。

官网文档:https://nsis.sourceforge.io/Inetc_plug-in

以下载net包为例

inetc::get "https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0fd66638cde16859462a6243a4629a50/ndp48-x86-x64-allos-enu.exe" "$TEMP\ndp48-x86-x64-allos-enu.exe"

传统界面的安装包,直接按照上面的方法使用即可。

为什么要扩展?

当我们使用自定义界面制作安装包时,遇到下载文件较大或网络不稳定的情况下,应当向用户展示下载文件的进度信息,增加用户体验。

扩展后的插件

扩展后的插件,提供传入一个回调函数,通过回调函数,可以获取到当前下载的进度信息,提供如下信息:

  • 当前进度(百分比)
  • 累计大小
  • 已下载大小
  • 下载速度
  • 剩余时间(秒)

示例代码

#Net包下载地址
!define NET_PACK_DL_URL "https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0fd66638cde16859462a6243a4629a50/ndp48-x86-x64-allos-enu.exe" #Net包名称
!define NET_PACK_NAME "ndp48-x86-x64-allos-enu.exe" ; Net安装包下载回调
Function NetPackDownLoadCallBack
; 0-当前进度(百分比)
Pop $0
; 1-累计大小
Pop $1
; 2-已下载大小
Pop $2
; 3-下载速度
Pop $3
; 4-剩余时间
Pop $4
FunctionEnd ;下载 .NET Framework 4.0
Function DownloadNetFramework4
GetFunctionAddress $R9 NetPackDownLoadCallBack
inetc::get "${NET_PACK_DL_URL}" "$TEMP\${NET_PACK_NAME}" $R9
; 读取值
Pop $1
; 写入值
Push $1
FunctionEnd

插件源码下载

github:https://github.com/zhaobangyu/NSIS/tree/PluginCode

NSIS Inetc插件 扩展使用的更多相关文章

  1. NSIS皮肤插件

    原文 NSIS皮肤插件 [有一个更好的皮肤,大家不妨试一下.http://www.flighty.cn/html/bushu/20110413_118.html ] 对于一般的安装不推荐使用皮肤,因为 ...

  2. QML插件扩展2(基于C++的插件扩展)

    上一节介绍了纯QML的插件扩展方式,这种扩展方式基本满足大部分的扩展需求,下面开始介绍比较小众的基于C++的扩展 (一)更新插件工程 1.更新MyPlugin工程下的qmldir文件,加入plugin ...

  3. QML插件扩展(一)

    准备分两节来介绍QML扩展插件,分别为 (一)基于QML文件的扩展方式 (二)基于C++的插件扩展 这篇先介绍基于QML的插件扩展. 先介绍几个基本概念: qmldir: 用于组织自定义的QML插件, ...

  4. [Unity]Unity3D编辑器插件扩展和组件扩展

    1. 插件扩展 1.1. 命名空间 using UnityEditor; using UnityEngine; //非必需,常用到 1.2. 使用语法 [MenuItem("Assets/M ...

  5. 百度umeditor富文本编辑器插件扩展

    富文本编辑器在WEB开发中经常用到,个人比较喜欢用百度出的ueditor这款,ueditor这款本身支持插件扩展的,但是ueditor的mini版本 umeditor 就没有那么方便了,不过找了很多资 ...

  6. Chrome插件(扩展)开发全攻略

    [干货]Chrome插件(扩展)开发全攻略:https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html

  7. FireFox 浏览器插件/扩展开发学习

    2014-11-08 内容存档在evernote,笔记名"FireFox 浏览器插件/扩展开发学习"

  8. jQuery的noConflict以及插件扩展

    一.noConflict函数 JavaScript有很多插件,如果jQuery对象的$与其他插件冲突,我们可以使用noConflict()方法去掉$或者使用其他的符号代替 注:noConflict() ...

  9. jQuery笔记之工具方法extend插件扩展

    jQuery工具方法 $.extend()插件扩展(工具方法) $.fn.extend()插件扩展(实例方法) 浅度克隆.深度克隆 两个方法基本是一样的,唯一不同的就是调用方式不一样 -------- ...

  10. Chrome插件(扩展)

    [干货]Chrome插件(扩展)开发全攻略   写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均 ...

随机推荐

  1. Git学习脑图

    背景: 最近在学习Git工作流,学习的是廖雪峰大神的教程,里面也很详尽了,于是自己就用脑图简单归纳自己选择学习的部分,方便日后查阅. 脑图:

  2. 11、lombok日志记录

    一.添加依赖: <!--lombok插件--> <dependency> <groupId>org.projectlombok</groupId> &l ...

  3. (4)go-micro微服务proto开发

    目录 一 Protobuf介绍 二 安装Protobuf 三 Protobuf语法 1.1 基本规范 1.2 字段规则 1.3 service如何定义 1.4 Message如何定义 四 proto代 ...

  4. Java基础篇——IO流

    流 内存和存储设备之间传输数据的通道 流的分类 按方向划分 输入流(读):存储设备→内存 输出流(写):内存→存储设备 按单位划分. 字节流:以字节为单位,可以读写所有数据 字符流:以字符为单位,只能 ...

  5. 线段树套线性基——题解P4839 P哥的桶

    文章历史 2022-08-03: 文章初稿,由于对算法介绍过于少而被管理员打回重造. 2020-08-06:将算法介绍进行扩写,并删除了一些可有可无的内容或玩梗内容. 管理员审核题解辛苦了. 简要题意 ...

  6. YMOI 2019.6.15

    题解 YMOI 2019.6.15 前记 NOIP信心个蛋赛,被各路大佬吊打,信心-- 耻辱墙: \(2019.6.15\) \(rank\) \(\color{red}{3}\) T1 简单队列 题 ...

  7. 【力扣】nSum问题模板

    nSum问题模板 两数之和.三数之和.四数之和. private List<List<Integer>> nSum(int[] nums, long target, int s ...

  8. 案例:用ajax 方法 解析xml

    xml文件 <?xml version="1.0" encoding="utf-8"?> <studentlist> <stude ...

  9. Bootstrap Blazor Viewer 图片浏览器 组件更新, 支持流转图片(ImageFromStream), 用于本地项目例如 MAUI Blazor,Blazor hybrid

    示例: https://blazor.app1.es/viewer 使用方法: 1.nuget包 BootstrapBlazor.Viewer 2._Imports.razor 文件 或者页面添加 添 ...

  10. 获取对象的方式-Calendar类的常用成员方法

    获取对象的方式 java.utiL.calendar类:日历类caLendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR.MONTH.DAY_OF_MONTH.HOUR )CaLend ...