用PassDialog插件实现密码安装功能
优质
小牛编辑
144浏览
2023-12-01
有时,出于特殊的需求,我们要给安装程序加一个密码,只有输入了正确的密码才可以继续安装。比如:
1、在相应位置(比如 欢迎页面 后面)加入以下代码:
## Pages Page Custom PasswordPageShow PasswordPageLeave !define MUI_PAGE_CUSTOMFUNCTION_SHOW ComponentsPageShow !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_INSTFILES ## Password is !define Password "123" ## Control ID's !define IDC_PASSWORD 123
2、在 Section 区段后面加入以下代码:
## Displays the password dialog Function PasswordPageShow !insertmacro MUI_HEADER_TEXT "输入密码" "程序需要一个正确的安装密码才能继续。" PassDialog::InitDialog /NOUNLOAD Password /HEADINGTEXT "您可以致电053283601988索取密码。" /GROUPTEXT "密码输入框" Pop $R0 # Page HWND GetDlgItem $R1 $R0 ${IDC_PASSWORD} SendMessage $R1 ${EM_SETPASSWORDCHAR} 178 0 PassDialog::Show FunctionEnd ## Validate password Function PasswordPageLeave ## Pop password from stack Pop $R0 ## A bit of validation StrCmp $R0 '${Password}' +3 MessageBox MB_OK|MB_ICONEXCLAMATION "密码错误!请输入正确的安装密码!" Abort ## Display the password MessageBox MB_OK|MB_ICONINFORMATION "密码正确,点击“确定”继续!" FunctionEnd Function ComponentsPageShow ## Disable the Back button GetDlgItem $R0 $HWNDPARENT 3 EnableWindow $R0 0 FunctionEnd