NSIS:卸载加密码示例

简介: 原文 NSIS:卸载加密码示例 最近有几个同学问我关于卸载时加密码的问题,其实很简单,懂点基础就可以根据安装加密码那篇文章http://www.flighty.cn/html/bushu/20100928_99.html来改写一下了,现在我把这个发出来,希望能够帮助到大家,也希望大家能够常来帮我点点广告呵。

原文 NSIS:卸载加密码示例

最近有几个同学问我关于卸载时加密码的问题,其实很简单,懂点基础就可以根据安装加密码那篇文章http://www.flighty.cn/html/bushu/20100928_99.html来改写一下了,现在我把这个发出来,希望能够帮助到大家,也希望大家能够常来帮我点点广告呵。

 

直接上代码:(如果编译失败可能是因为缺少插件,请下载NSIS集成增强版http://www.flighty.cn/html/soft/20100429_76.html)

001 /*
002 卸载加密码示例 by 少轻狂
004 */
005  
006 !define PRODUCT_NAME "卸载加密码示例"
007 !define PRODUCT_VERSION "1.0"
008 !define PRODUCT_PUBLISHER "My company, Inc."
009 !define PRODUCT_WEB_SITE "http://www.flighty.cn"
010 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\AppMainExe.exe"
011 !define PRODUCT_UNINST_KEY"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
012 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
013  
014 SetCompressor lzma
015 SetFont "tahoma" 8
016 RequestExecutionLevel admin
017  
018 !include "MUI2.nsh"
019  
020 !define MUI_ABORTWARNING
021 !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
022 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
023 ;卸载密码
024 !define Password "123"
025  
026 !insertmacro MUI_PAGE_WELCOME
027 !insertmacro MUI_PAGE_DIRECTORY
028 !insertmacro MUI_PAGE_INSTFILES
029 !insertmacro MUI_PAGE_FINISH
030  
031 ;卸载密码输入页面
032 UninstPage Custom un.PasswordPageShow un.PasswordPageLeave
033 !insertmacro MUI_UNPAGE_CONFIRM
034 !insertmacro MUI_UNPAGE_INSTFILES
035  
036 !insertmacro MUI_LANGUAGE "SimpChinese"
037  
038 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
039 OutFile "Setup.exe"
040 InstallDir "$PROGRAMFILES\卸载加密码示例"
041 InstallDirRegKey HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
042 ShowInstDetails show
043 ShowUnInstDetails show
044  
045 Section "MainSection" SEC01
046   SetOutPath "$INSTDIR"
047   SetOverwrite ifnewer
048   CreateDirectory "$SMPROGRAMS\卸载加密码示例"
049 SectionEnd
050  
051 Section -AdditionalIcons
052   CreateDirectory "$SMPROGRAMS\卸载加密码示例"
053   CreateShortCut "$SMPROGRAMS\卸载加密码示例\Uninstall.lnk""$INSTDIR\uninst.exe"
054 SectionEnd
055  
056 Section -Post
057   WriteUninstaller "$INSTDIR\uninst.exe"
058   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\AppMainExe.exe"
059   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayName" "$(^Name)"
060   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""UninstallString" "$INSTDIR\uninst.exe"
061   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayIcon" "$INSTDIR\AppMainExe.exe"
062   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayVersion" "${PRODUCT_VERSION}"
063   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""URLInfoAbout" "${PRODUCT_WEB_SITE}"
064   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""Publisher" "${PRODUCT_PUBLISHER}"
065 SectionEnd
066  
067 /******************************
068  *  以下是安装程序的卸载部分  *
069  ******************************/
070  
071 Section Uninstall
072   Delete "$INSTDIR\uninst.exe"
073  
074   Delete "$SMPROGRAMS\卸载加密码示例\Uninstall.lnk"
075  
076   RMDir "$SMPROGRAMS\卸载加密码示例"
077  
078   RMDir "$INSTDIR"
079  
080   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
081   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
082   SetAutoClose true
083 SectionEnd
084  
085 Function un.onUninstSuccess
086   HideWindow
087   MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从您的计算机移除。"
088 FunctionEnd
089  
090 ;显示密码对话框
091 Function un.PasswordPageShow
092   !insertmacro MUI_HEADER_TEXT "输入密码" "卸载程序需要输入一个正确的密码以防止误操作。"
093   PassDialog::InitDialog /NOUNLOAD Password /HEADINGTEXT "少轻狂提示:卸载密码是123。" /GROUPTEXT "密码输入框"
094   Pop $R0
095   SendMessage $R1 ${EM_SETPASSWORDCHAR} 178 0
096   PassDialog::Show
097 FunctionEnd
098  
099 ;验证密码
100 Function un.PasswordPageLeave
101   ;从堆栈取出密码
102   Pop $R0
103   ;密码错误
104   StrCmp $R0 '${Password}' +3
105   MessageBox MB_OK|MB_ICONEXCLAMATION "密码输入错误!请输入正确的卸载密码!"
106   Abort
107 FunctionEnd
目录
相关文章
|
28天前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
29 1
|
3月前
|
Web App开发 iOS开发 MacOS
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
28 0
|
Ubuntu
Ubuntu 16上命令行提示长目录的解决办法
Ubuntu 16上命令行提示长目录的解决办法
74 0
win10 下提示“请等待当前程序完成卸载或更改”解决方案
当我们打开控制面板选择程序和功能进行程序卸载的时候,一旦当你当前的程序卸载还未完成时,你又去卸载另一个程序的时候,就会出现如下的提示“请等待当前程序完成卸载或更改”
883 0
win10 下提示“请等待当前程序完成卸载或更改”解决方案