原文 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. 上市ASCII 表省内发现!

    表格来自,这里 扩展码表:

  2. windows phone (27) 基础Button

    原文:windows phone (27) 基础Button Button 在wp7中因其灵活性经常会用到,我们在ContentPanel中直接添加Button,button默认状态下是把整个grid ...

  3. NET MVC异常处理模块

    一个简单的ASP.NET MVC异常处理模块   一.前言 异常处理是每个系统必不可少的一个重要部分,它可以让我们的程序在发生错误时友好地提示.记录错误信息,更重要的是不破坏正常的数据和影响系统运行. ...

  4. yum 简介及使用 安装、删除

    使用yum装软件很方便,这里简单介绍一下. Yum简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE.CentOS中的She ...

  5. eclipse luna 无法安装veloeclipse问题

    问题: 在eclipse 4.4(luna)版本号.安装veloeclipse 2.0.8时,在即将完毕的时候出现下面错误提示: An error occurred while installing ...

  6. json学习初体验--第三者jar包实现bean、List、map创json格式

    1.的需要jar包裹json-lib.jar 下载链接: http://sourceforge.net/projects/json-lib/files/json-lib/ 此包还须要下面的依赖包, c ...

  7. 【转】HLSL基础

    原文地址http://blog.csdn.net/chpdirect1984/article/details/1911622 目录 前言 1.HLSL入门 1.1什么是着色器 1.2什么是HLSL 1 ...

  8. 关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法

    原地址 http://blog.sina.com.cn/s/blog_912e77480101nuif.html   最近VPS的CPU一直处在100%左右,后台管理上去经常打不开,后来发现上远程都要 ...

  9. WebAPI通过multipart/form-data方式同时上传文件以及数据(含HttpClient上传Demo)

    简单的Demo,用于了解WebAPI如何同时接收文件及数据,同时提供HttpClient模拟如何同时上传文件和数据的Demo,下面是HttpClient上传的Demo界面 1.HttpClient部分 ...

  10. shell 脚本运算符

    1.数值 格式: test "num1" opr "num2" [ "num1" opr "num2" ] opr 取值 ...