NSIS:使用PassDialog插件实现密码安装(卸载)功能
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
2、加载插件(NSIS集成增强版中包含此插件及示例):
3、在相应位置(比如 欢迎页面 后面)加入以下代码:
4、在 Section 区段后面加入以下代码,我习惯放在.onInit后:
只回答业务咨询
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
有时,出于特殊的需求,我们要给安装或卸载程序加一个密码,只有输入了正确的密码才可以继续。比如:
下面我们使用插件来实现安装密码:
1、设定字体及大小
1 2 |
;www.flighty.cn SetFont "tahoma" 8 |
2、加载插件(NSIS集成增强版中包含此插件及示例):
1 |
ReserveFile "${NSISDIR}\Plugins\PassDialog.dll" |
3、在相应位置(比如 欢迎页面 后面)加入以下代码:
1 2 3 4 |
;安装密码 !define Password "123" ;密码输入页面 Page Custom PasswordPageShow PasswordPageLeave |
4、在 Section 区段后面加入以下代码,我习惯放在.onInit后:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
;显示密码对话框 Function PasswordPageShow !insertmacro MUI_HEADER_TEXT "输入密码" "安装程序需要一个正确的安装密码才能继续。" PassDialog::InitDialog /NOUNLOAD Password /HEADINGTEXT "请致电 XXXXXXXXXXX 索取密码。" /GROUPTEXT "密码输入框" Pop $R0 SendMessage $R1 ${EM_SETPASSWORDCHAR} 178 0 PassDialog::Show FunctionEnd ;验证密码 Function PasswordPageLeave ;从堆栈取出密码 Pop $R0 ;密码错误 StrCmp $R0 '${Password}' +3 MessageBox MB_OK|MB_ICONEXCLAMATION "密码输入错误!请输入正确的安装密码!" Abort ;密码正确 MessageBox MB_OK|MB_ICONINFORMATION "密码输入正确!请点击“确定”继续进行安装!" FunctionEnd |
轻狂提示:卸载密码能在一定程度上防止意外卸载,或其他程序(出于恶意)自动卸载。有了安装密码示例,相信在卸载区段加入密码对于不是伸手党的你来说也不是难事,自己研究一下呵。效果看这里:
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=1012