01_NSIS_设置密码卸载

1. 密码卸载

1.1 添加卸载相关页面

;--------------------引入文件,声明变量----------------------------------
!include "nsDialogs.nsh"
Var Dialog
Var Label
Var Text
;--------------------添加卸载界面-----------------------------------
;卸载欢迎界面
!insertmacro MUI_UNPAGE_WELCOME
;定义卸载密码
!define Password "123"
;un.PasswordPageShow为密码输入页面,un.PasswordPageLeave为离开函数,验证密码
UninstPage Custom un.PasswordPageShow un.PasswordPageLeave
!insertmacro MUI_UNPAGE_INSTFILES

1.2 定义卸载密码页面

;显示卸载密码对话框
Function un.PasswordPageShow
  !insertmacro MUI_HEADER_TEXT "输入密码" "请联系管理员获取卸载密码。"
  ;在该页面中创建一个对话框、并在堆栈中返回其HWND值
  nsDialogs::Create /NOUNLOAD 1018
  ;从堆栈里弹出一个字串到用户变量
  Pop $Dialog
  
  ;如果结果错误,则在下一行退出
  ${If} $Dialog == error
    Abort
  ${EndIf}

  ${NSD_CreateLabel} 15u 10u 100% 12u "管理员tel:88888888"
  Pop $Label

  ${NSD_CreateGroupBox} 15u 45u -35u 70u "密码输入框"

  ${NSD_CreateText} 25u 75u -60u 12u ...
  Pop $Text
  ${NSD_SetFocus} $Text
  ;显示自定义界面
 nsDialogs::Show
FunctionEnd

1.3 定义离开时验证卸载密码函数

;离开时验证卸载密码函数
Function un.PasswordPageLeave
  ;获取用户输入的数据到变量R1
  ${NSD_GetText} $Text $R1
  StrCmp $R1 '${Password}' +3
  ;验证密码
  MessageBox MB_OK|MB_ICONEXCLAMATION "密码输入错误!请输入正确的卸载密码!"
  Abort
  ;密码正确
  MessageBox MB_OK|MB_ICONEXCLAMATION "密码正确!"
  ;Abort
FunctionEnd

2. 相关函数介绍

2.1 StrCmp

https://nsis.sourceforge.io/Reference/StrCmp

2.2 函数声明

str1 str2 jump_if_equal [jump_if_not_equal]

比较(不区分大小写)str1和str2。如果str1和str2相等,则转到jump_if_equal,否则转到jump_if_no_equal

2.3 例子

StrCmp $0 "a string" 0 +3
DetailPrint '$$0 == "a string"'
Goto +2
DetailPrint '$$0 != "a string"'

参考网址

https://www.flighty.cn/html/bushu/20140921_254.html?t=1506424277467

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fantongl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值