天天看点

NSIS:卸载加密码示例

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

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

<code>001</code>

<code>/*</code>

<code>002</code>

<code>卸载加密码示例 by 少轻狂</code>

<code>003</code>

<code>004</code>

<code>*/</code>

<code>005</code>

<code>006</code>

<code>!define PRODUCT_NAME </code><code>"卸载加密码示例"</code>

<code>007</code>

<code>!define PRODUCT_VERSION </code><code>"1.0"</code>

<code>008</code>

<code>!define PRODUCT_PUBLISHER </code><code>"My company, Inc."</code>

<code>009</code>

<code>010</code>

<code>!define PRODUCT_DIR_REGKEY </code><code>"Software\Microsoft\Windows\CurrentVersion\App Paths\AppMainExe.exe"</code>

<code>011</code>

<code>!define PRODUCT_UNINST_KEY</code><code>"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"</code>

<code>012</code>

<code>!define PRODUCT_UNINST_ROOT_KEY </code><code>"HKLM"</code>

<code>013</code>

<code>014</code>

<code>SetCompressor lzma</code>

<code>015</code>

<code>SetFont </code><code>"tahoma"</code> <code>8</code>

<code>016</code>

<code>RequestExecutionLevel admin</code>

<code>017</code>

<code>018</code>

<code>!include </code><code>"MUI2.nsh"</code>

<code>019</code>

<code>020</code>

<code>!define MUI_ABORTWARNING</code>

<code>021</code>

<code>!define MUI_ICON </code><code>"${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"</code>

<code>022</code>

<code>!define MUI_UNICON </code><code>"${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"</code>

<code>023</code>

<code>;卸载密码</code>

<code>024</code>

<code>!define Password </code><code>"123"</code>

<code>025</code>

<code>026</code>

<code>!insertmacro MUI_PAGE_WELCOME</code>

<code>027</code>

<code>!insertmacro MUI_PAGE_DIRECTORY</code>

<code>028</code>

<code>!insertmacro MUI_PAGE_INSTFILES</code>

<code>029</code>

<code>!insertmacro MUI_PAGE_FINISH</code>

<code>030</code>

<code>031</code>

<code>;卸载密码输入页面</code>

<code>032</code>

<code>UninstPage Custom un.PasswordPageShow un.PasswordPageLeave</code>

<code>033</code>

<code>!insertmacro MUI_UNPAGE_CONFIRM</code>

<code>034</code>

<code>!insertmacro MUI_UNPAGE_INSTFILES</code>

<code>035</code>

<code>036</code>

<code>!insertmacro MUI_LANGUAGE </code><code>"SimpChinese"</code>

<code>037</code>

<code>038</code>

<code>Name </code><code>"${PRODUCT_NAME} ${PRODUCT_VERSION}"</code>

<code>039</code>

<code>OutFile </code><code>"Setup.exe"</code>

<code>040</code>

<code>InstallDir </code><code>"$PROGRAMFILES\卸载加密码示例"</code>

<code>041</code>

<code>InstallDirRegKey HKLM </code><code>"${PRODUCT_UNINST_KEY}"</code> <code>"UninstallString"</code>

<code>042</code>

<code>ShowInstDetails show</code>

<code>043</code>

<code>ShowUnInstDetails show</code>

<code>044</code>

<code>045</code>

<code>Section </code><code>"MainSection"</code> <code>SEC01</code>

<code>046</code>

<code>  </code><code>SetOutPath </code><code>"$INSTDIR"</code>

<code>047</code>

<code>  </code><code>SetOverwrite ifnewer</code>

<code>048</code>

<code>  </code><code>CreateDirectory </code><code>"$SMPROGRAMS\卸载加密码示例"</code>

<code>049</code>

<code>SectionEnd</code>

<code>050</code>

<code>051</code>

<code>Section -AdditionalIcons</code>

<code>052</code>

<code>053</code>

<code>  </code><code>CreateShortCut </code><code>"$SMPROGRAMS\卸载加密码示例\Uninstall.lnk"</code><code>"$INSTDIR\uninst.exe"</code>

<code>054</code>

<code>055</code>

<code>056</code>

<code>Section -Post</code>

<code>057</code>

<code>  </code><code>WriteUninstaller </code><code>"$INSTDIR\uninst.exe"</code>

<code>058</code>

<code>  </code><code>WriteRegStr HKLM </code><code>"${PRODUCT_DIR_REGKEY}"</code> <code>""</code> <code>"$INSTDIR\AppMainExe.exe"</code>

<code>059</code>

<code>  </code><code>WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} </code><code>"${PRODUCT_UNINST_KEY}"</code><code>"DisplayName"</code> <code>"$(^Name)"</code>

<code>060</code>

<code>  </code><code>WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} </code><code>"${PRODUCT_UNINST_KEY}"</code><code>"UninstallString"</code> <code>"$INSTDIR\uninst.exe"</code>

<code>061</code>

<code>  </code><code>WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} </code><code>"${PRODUCT_UNINST_KEY}"</code><code>"DisplayIcon"</code> <code>"$INSTDIR\AppMainExe.exe"</code>

<code>062</code>

<code>  </code><code>WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} </code><code>"${PRODUCT_UNINST_KEY}"</code><code>"DisplayVersion"</code> <code>"${PRODUCT_VERSION}"</code>

<code>063</code>

<code>  </code><code>WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} </code><code>"${PRODUCT_UNINST_KEY}"</code><code>"URLInfoAbout"</code> <code>"${PRODUCT_WEB_SITE}"</code>

<code>064</code>

<code>  </code><code>WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} </code><code>"${PRODUCT_UNINST_KEY}"</code><code>"Publisher"</code> <code>"${PRODUCT_PUBLISHER}"</code>

<code>065</code>

<code>066</code>

<code>067</code>

<code>/******************************</code>

<code>068</code>

<code> </code><code>*  以下是安装程序的卸载部分  *</code>

<code>069</code>

<code> </code><code>******************************/</code>

<code>070</code>

<code>071</code>

<code>Section Uninstall</code>

<code>072</code>

<code>  </code><code>Delete </code><code>"$INSTDIR\uninst.exe"</code>

<code>073</code>

<code>074</code>

<code>  </code><code>Delete </code><code>"$SMPROGRAMS\卸载加密码示例\Uninstall.lnk"</code>

<code>075</code>

<code>076</code>

<code>  </code><code>RMDir </code><code>"$SMPROGRAMS\卸载加密码示例"</code>

<code>077</code>

<code>078</code>

<code>  </code><code>RMDir </code><code>"$INSTDIR"</code>

<code>079</code>

<code>080</code>

<code>  </code><code>DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} </code><code>"${PRODUCT_UNINST_KEY}"</code>

<code>081</code>

<code>  </code><code>DeleteRegKey HKLM </code><code>"${PRODUCT_DIR_REGKEY}"</code>

<code>082</code>

<code>  </code><code>SetAutoClose </code><code>true</code>

<code>083</code>

<code>084</code>

<code>085</code>

<code>Function un.onUninstSuccess</code>

<code>086</code>

<code>  </code><code>HideWindow</code>

<code>087</code>

<code>  </code><code>MessageBox MB_ICONINFORMATION|MB_OK </code><code>"$(^Name) 已成功地从您的计算机移除。"</code>

<code>088</code>

<code>FunctionEnd</code>

<code>089</code>

<code>090</code>

<code>;显示密码对话框</code>

<code>091</code>

<code>Function un.PasswordPageShow</code>

<code>092</code>

<code>  </code><code>!insertmacro MUI_HEADER_TEXT </code><code>"输入密码"</code> <code>"卸载程序需要输入一个正确的密码以防止误操作。"</code>

<code>093</code>

<code>  </code><code>PassDialog::InitDialog /NOUNLOAD Password /HEADINGTEXT </code><code>"少轻狂提示:卸载密码是123。"</code> <code>/GROUPTEXT </code><code>"密码输入框"</code>

<code>094</code>

<code>  </code><code>Pop $R0</code>

<code>095</code>

<code>  </code><code>SendMessage $R1 ${EM_SETPASSWORDCHAR} 178 0</code>

<code>096</code>

<code>  </code><code>PassDialog::Show</code>

<code>097</code>

<code>098</code>

<code>099</code>

<code>;验证密码</code>

<code>100</code>

<code>Function un.PasswordPageLeave</code>

<code>101</code>

<code>  </code><code>;从堆栈取出密码</code>

<code>102</code>

<code>103</code>

<code>  </code><code>;密码错误</code>

<code>104</code>

<code>  </code><code>StrCmp $R0 </code><code>'${Password}'</code> <code>+3</code>

<code>105</code>

<code>  </code><code>MessageBox MB_OK|MB_ICONEXCLAMATION </code><code>"密码输入错误!请输入正确的卸载密码!"</code>

<code>106</code>

<code>  </code><code>Abort</code>

<code>107</code>

继续阅读