原文 NSIS:使用PassDialog插件实现密码安装(卸载)功能

有时,出于特殊的需求,我们要给安装或卸载程序加一个密码,只有输入了正确的密码才可以继续。比如:

下面我们使用插件来实现安装密码:

1、设定字体及大小

 
1 ;www.flighty.cn
2 SetFont "tahoma" 8
 
2、加载插件(NSIS集成增强版中包含此插件及示例):

1 ReserveFile "${NSISDIR}\Plugins\nsDialogs.dll"

3、在相应位置(比如 欢迎页面 后面)加入以下代码:

 
1 ;安装密码
2 !define Password "123"
3 ;密码输入页面
4 Page Custom PasswordPageShow PasswordPageLeave
 
4、在 Section 区段后面加入以下代码,我习惯放在.onInit后:
 
01 ;显示密码对话框
02 Function PasswordPageShow
03   !insertmacro MUI_HEADER_TEXT "输入密码" "安装程序需要一个正确的安装密码才能继续。"
04   PassDialog::InitDialog /NOUNLOAD Password /HEADINGTEXT "请致电 XXXXXXXXXXX 索取密码。" /GROUPTEXT "密码输入框"
05   Pop $R0
06   SendMessage $R1 ${EM_SETPASSWORDCHAR} 178 0
07   PassDialog::Show
08 FunctionEnd
09 ;验证密码 Function PasswordPageLeave
10   ;从堆栈取出密码
11   Pop $R0
12   ;密码错误
13   StrCmp $R0 '${Password}' +3
14   MessageBox MB_OK|MB_ICONEXCLAMATION "密码输入错误!请输入正确的安装密码!"
15   Abort
16   ;密码正确
17   MessageBox MB_OK|MB_ICONINFORMATION "密码输入正确!请点击“确定”继续进行安装!"
18 FunctionEnd

轻狂提示:卸载密码能在一定程度上防止意外卸载,或其他程序(出于恶意)自动卸载。有了安装密码示例,相信在卸载区段加入密码对于不是伸手党的你来说也不是难事,自己研究一下呵。效果看这里:

NSIS:使用PassDialog插件实现密码安装(卸载)功能的更多相关文章

  1. eclipse中安装windowbuilder插件、应用及卸载

    一.安装windowbuilder插件 1.找到对应版本的windowbuilder 连接地址:http://www.eclipse.org/windowbuilder/download.php 如图 ...

  2. Mac EI 10.11.3 MySQL5.7.11 .dmg 安装(便捷设置,密码重置,卸载)

    MySQL 5.7+ 安装成功以后会弹出一个临时密码 后面需要通过临时密码设置新的密码 重置root密码:安装成功后,使用临时密码登陆:敲入命令,mysqladmin -u root -p passw ...

  3. NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版

    nsis中文版(Nullsoft Scriptable Install System)是一个专业的开源的可以用来封闭Windows程序的实用工具,是一个开源的 Windows 系统下安装程序制作程序. ...

  4. 【IDEA】热部署插件Jrebel破解安装

    JRebel 介绍 IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊.目前对于idea热部署最好的解决方案就是安装JRebel插件 ...

  5. inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

    inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...

  6. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  7. win10下ElasticSearch5.5.1与head、Kibana、X-Pack、SQL、IK、PINYIN插件的配置安装

    ElasticSearch5.5.1与插件的配置安装 Elasticsearch5.5.1安装: 下载地址https://www.elastic.co/cn/downloads/elasticsear ...

  8. vim学习、各类插件配置与安装【转】

    转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...

  9. windows服务安装卸载

    到C盘下找到对应的开发VS的installutil.exe文件,复制到程序的执行文件(*.exe)相同目录下在开始程序中找到VS命令提示工具 转到程序的执行文件(*.exe)目录下 C:\>cd ...

随机推荐

  1. ostringstream使用

    ostringstream使用 [本文来源于]http://www.builder.com.cn/2003/0304/83250.shtml http://www.cppblog.com/alanto ...

  2. 雷人的一幕:国外的codeproject论坛竟有人发“中文贴”.....

    潜水近一年,头一次见国人在此发“中文贴”,截图留个“纪念”....

  3. Cocos2d-x 脚本语言Lua中的面向对象

    Cocos2d-x 脚本语言Lua中的面向对象 面向对象不是针对某一门语言,而是一种思想.在面向过程的语言也能够使用面向对象的思想来进行编程. 在Lua中,并没有面向对象的概念存在,没有类的定义和子类 ...

  4. [Windows]_[0基础]_[使用命令行工具dumpbin分析文件]

    dumpbin(vs拥有) 1. 出口lib函数符号文件(symbols) dumpbin /exports zlib1.lib Microsoft (R) COFF/PE Dumper Versio ...

  5. C++ 操作 MySQL

    使用VS2008如IDE, 准备操作: 1. 项目属性  C++ 其他包括文件夹 为 mysql 安装文件夹的include 如:"C:\Program Files (x86)\MySQL\ ...

  6. Sql Server函数全解<四>日期和时间函数

    原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...

  7. Ubuntu 13.10 安装 Unity 8 试用截图

    关于 Unity 8 有很多报道,Unity 8 相对于 Unity 7 变化相当大,这是 Ubuntu 团队打造的一款通用于 PC.手机.平板的桌面. Unity 8 已经登陆 ubuntu 13. ...

  8. 切割图像(五)主动轮廓模型Snake简要模型

    切割图像(五)主动轮廓模型Snake简要模型 zouxy09@qq.com http://blog.csdn.net/zouxy09 在"图像切割之(一)概述"中咱们简单了解了眼下 ...

  9. JAVA字符串比较equals()和equalsIgnoreCase()差异

    .用equals( )方法比較两个字符串是否相等.它具有例如以下的一般形式: boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比較的字符串( ...

  10. 如何区分MNO和MVNO

    MVNO(Mobile Virtaul Network Operator)虚拟网络运营商,没有自己的物理网络,租用MNO(Mobile Network Operator)网络提供的网络服务. 我们知道 ...