原文 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. 王立平--Program Files (x86)

    window7根据系统.program files(x86) 它是应用程序目录,在64下位系统.为了更好的相容性32位程序,在一些安装32位程序(请注意,有些节目自己是32位),将默认被安装progr ...

  2. 谁的用户在世界上是&#160;&#160;明基决心保时捷设计标准

        谈到保时捷.相信非常多人都非常了解,世界名车啊,仅仅有高富帅才玩儿得起.只是,假设由保时捷的设计师来设计一款显示器,水准一流.质地厚道,且价格亲民,你怎么看?     如近期京东上热销的明基G ...

  3. Java EE (2) -- Java EE 6 Enterprise JavaBeans Developer Certified Expert(1z0-895)

    Introduction to Java EE Gain an understanding of the Java Platform, Enterprise Edition (Java EE) Exa ...

  4. Oracle Hints详细解释

    特别介绍给大家Oracle Hints之前,让我们知道下Oracle Hints什么,然后好Oracle Hints,我们希望实际.基于成本的优化器是很聪明,在大多数情况下,将选择正确的优化,减少DB ...

  5. UVA11100- The Trip, 2007

    option=com_onlinejudge&Itemid=8&category=512&page=show_problem&problem=2041"> ...

  6. OpenStack Dashboard

    OpenStackDashboard 为管理员和普通用户提供了一个图形化管理界面.用户能够通过该界面訪问.分配或者自己主动化分配基于云的资源.可扩展的设计使得与第三方产品和服务融合变得非常easy,比 ...

  7. Atitit.列表页and查询条件的最佳实践(1)------设定搜索条件and提交查询and返回json数据

    Atitit.列表页and查询条件的最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段显示类 ...

  8. mapreduce程序来实现分类

    文件的内容例如以下所看到的: 5 45 8 876 6 45 要求最后的输出格式: 1    5 2    6 3    8 4    45 5    45 5    876 首先,这个题目是须要对文 ...

  9. lunux命令笔记

    文件查看命令 ls / -lh ls list / 路径 -l 具体 -lh 具体的人性化显示 -ld 显示文件夹 -i 显示i节点 mkdir /tmp/mulu/mulu2 /tmp/ma/mb ...

  10. Jquery简介选择的

    前言 Jquery一个js相框(程序代码相结合)这是一个程序开发过程中的半成品:分类似该框架EXTJS. 依赖库:jquery-XXX.js 语法:$() 正文 5择器 id选择器 $("# ...