📄 installer.nsi
字号:
!insertmacro ECLIPSE_STARTUP !insertmacro QTJAMBIECLIPSE_STARTUP!endifFunctionEndFunction .onInstSuccess !insertmacro ENVIRONMENT_FINISH !insertmacro REGISTERUIEXT_FINISH !insertmacro OPENSOURCE_FINISH !insertmacro MINGW_FINISH!ifndef OPENSOURCE_BUILD !insertmacro LICENSECHECK_FINISH !insertmacro MSVC_FINISH !insertmacro EVALUATION_FINISH !insertmacro ADDIN7X_FINISH !insertmacro ADDIN60_FINISH !insertmacro DEBUGEXT_FINISH !insertmacro VSIP_FINISH !insertmacro HELP_FINISH !insertmacro QSA_FINISH !insertmacro ECLIPSE_FINISH !insertmacro QTJAMBIECLIPSE_FINISH!endifFunctionEndFunction un.onUninstSuccess !insertmacro ENVIRONMENT_UNFINISH !insertmacro REGISTERUIEXT_UNFINISH !insertmacro OPENSOURCE_UNFINISH !insertmacro MINGW_UNFINISH!ifndef OPENSOURCE_BUILD !insertmacro LICENSECHECK_UNFINISH !insertmacro MSVC_UNFINISH !insertmacro EVALUATION_UNFINISH !insertmacro ADDIN7X_UNFINISH !insertmacro ADDIN60_UNFINISH !insertmacro DEBUGEXT_UNFINISH !insertmacro VSIP_UNFINISH !insertmacro HELP_UNFINISH !insertmacro QSA_UNFINISH !insertmacro ECLIPSE_UNFINISH !insertmacro QTJAMBIECLIPSE_UNFINISH!endifFunctionEndFunction un.onInit call un.SetAdminVar StrCmp "$RUNNING_AS_ADMIN" "false" 0 common_running_as_admin!ifdef USE_ADMIN_CHECK MessageBox MB_OK|MB_ICONSTOP "You do not have the required access rights to uninstall this package." Abort!endif SetShellVarContext current goto common_admin_check_done common_running_as_admin: SetShellVarContext all common_admin_check_done: ${UnStrRep} $PRODUCT_UNIQUE_KEY "${PRODUCT_NAME} ${PRODUCT_VERSION} - $INSTDIR" "\" "_" strcpy $PRODUCT_UNIQUE_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\$PRODUCT_UNIQUE_KEY" push $0 ClearErrors ReadRegStr $0 SHCTX "$PRODUCT_UNIQUE_KEY" "DisplayName" IfErrors 0 +3 MessageBox MB_OK|MB_ICONSTOP "The uninstaller was unable to find the product to uninstall." Abort pop $0 ReadRegStr $STARTMENU_STRING SHCTX "$PRODUCT_UNIQUE_KEY" "StartMenu" StrCmp "$STARTMENU_STRING" "" 0 +2 StrCpy $STARTMENU_STRING "${DEFAULT_STARTMENU_STRING}"!ifdef INSTDIR_0 ;the default one, must exist ReadRegStr $${INSTDIR_0}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_0}_INSTDIR"!endif!ifdef INSTDIR_1 ReadRegStr $${INSTDIR_1}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_1}_INSTDIR"!endif!ifdef INSTDIR_2 ReadRegStr $${INSTDIR_2}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_2}_INSTDIR"!endif!ifdef INSTDIR_3 ReadRegStr $${INSTDIR_3}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_3}_INSTDIR"!endif!ifdef INSTDIR_4 ReadRegStr $${INSTDIR_4}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_4}_INSTDIR"!endif!ifdef INSTDIR_5 ReadRegStr $${INSTDIR_5}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_5}_INSTDIR"!endif !insertmacro ENVIRONMENT_UNSTARTUP !insertmacro REGISTERUIEXT_UNSTARTUP !insertmacro OPENSOURCE_UNSTARTUP !insertmacro MINGW_UNSTARTUP!ifndef OPENSOURCE_BUILD !insertmacro LICENSECHECK_UNSTARTUP !insertmacro MSVC_UNSTARTUP !insertmacro EVALUATION_UNSTARTUP !insertmacro ADDIN7X_UNSTARTUP !insertmacro ADDIN60_UNSTARTUP !insertmacro DEBUGEXT_UNSTARTUP !insertmacro VSIP_UNSTARTUP !insertmacro HELP_UNSTARTUP !insertmacro QSA_UNSTARTUP !insertmacro ECLIPSE_UNSTARTUP !insertmacro QTJAMBIECLIPSE_UNSTARTUP!endif !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${UNINSTALLER_CONFIRM_PAGE}"FunctionEnd!insertmacro OPENSOURCE_UNINSTALL!insertmacro ENVIRONMENT_UNINSTALL!insertmacro REGISTERUIEXT_UNINSTALL!insertmacro MINGW_UNINSTALL!ifndef OPENSOURCE_BUILD!insertmacro HELP_UNINSTALL!insertmacro DEBUGEXT_UNINSTALL!insertmacro MSVC_UNINSTALL!insertmacro EVALUATION_UNINSTALL!insertmacro QSA_UNINSTALL!insertmacro ECLIPSE_UNINSTALL!insertmacro QTJAMBIECLIPSE_UNINSTALL!endifSection Uninstall !ifndef OPENSOURCE_BUILD !insertmacro LICENSECHECK_UNINSTALL !insertmacro ADDIN7X_UNINSTALL !insertmacro ADDIN60_UNINSTALL !insertmacro VSIP_UNINSTALL !endif ; COMMON Delete "$INSTDIR\${PRODUCT_NAME}.url" Delete "$INSTDIR\uninst.exe" Delete "$SMPROGRAMS\$STARTMENU_STRING\Uninstall ${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk" Delete "$SMPROGRAMS\$STARTMENU_STRING\Trolltech.com.lnk" RMDir "$SMPROGRAMS\$STARTMENU_STRING" RMDir "$INSTDIR" DeleteRegKey SHCTX "$PRODUCT_UNIQUE_KEY"SectionEndFunction CommonRunFunction !ifndef OPENSOURCE_BUILD !insertmacro MSVC_RUN_FUNCTION !insertmacro QSA_RUN_FUNCTION !endif !insertmacro MINGW_RUN_FUNCTION DoneRunFunction:FunctionEndFunction CommonReadmeFunction !ifndef OPENSOURCE_BUILD !insertmacro MSVC_README_FUNCTION !endif !insertmacro MINGW_README_FUNCTION DoneReadmeFunction:FunctionEndFunction un.UninstallerConfirmPage !insertmacro MUI_HEADER_TEXT "Confirm" "Confirm Uninstallation Directories" !insertmacro MUI_INSTALLOPTIONS_WRITE "${UNINSTALLER_CONFIRM_PAGE}" "Field 2" "Text" "$UninstallerConfirmProduct" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${UNINSTALLER_CONFIRM_PAGE}"FunctionEnd;pops product name from stack and as result pushes TRUE or FALSE on stackFunction GetExistsPreviousInstallationOfProduct exch $0 push $1 push $2 push $3 StrCpy $1 0 loop: EnumRegKey $2 HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall $1 StrCmp $2 "" no_reg_key_found ${StrStr} $3 $2 $0 StrCmp $3 $2 reg_key_found IntOp $1 $1 + 1 goto loop reg_key_found: push true goto done no_reg_key_found: push false done: exch pop $3 exch pop $2 exch pop $1 exch pop $0FunctionEnd;pops product name from stackFunction WarnIfInstalledProductDetected exch $0 push $0 call GetExistsPreviousInstallationOfProduct exch $1 StrCmp $1 true +1 +3 MessageBox MB_YESNO|MB_ICONQUESTION "An existing installation of $0 was detected.$\nIt is recommended to deinstall $0 before continuing.$\nDo you want to continue this installation nevertheless?" IDYES +2 IDNO +1 Abort pop $1 pop $0FunctionEnd;sets $RUNNING_AS_ADMIN to "true" if Admin or Power user!macro SetAdminVar UNFunction ${UN}SetAdminVar push $0 ClearErrors UserInfo::GetAccountType IfErrors Admin ;It's probably Win95 pop $0 StrCmp $0 "Admin" Admin StrCmp $0 "Power" Admin StrCpy $RUNNING_AS_ADMIN "false" goto Done Admin: StrCpy $RUNNING_AS_ADMIN "true" Done: pop $0FunctionEnd!macroend!insertmacro SetAdminVar ""!insertmacro SetAdminVar "un."!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro OPENSOURCE_DESCRIPTION !insertmacro ENVIRONMENT_DESCRIPTION !insertmacro REGISTERUIEXT_DESCRIPTION !insertmacro MINGW_DESCRIPTION !ifndef OPENSOURCE_BUILD !insertmacro MSVC_DESCRIPTION !insertmacro EVALUATION_DESCRIPTION !insertmacro ADDIN7X_DESCRIPTION !insertmacro ADDIN60_DESCRIPTION !insertmacro DEBUGEXT_DESCRIPTION !insertmacro HELP_DESCRIPTION !insertmacro VSIP_DESCRIPTION !insertmacro QSA_DESCRIPTION !insertmacro ECLIPSE_DESCRIPTION !insertmacro QTJAMBIECLIPSE_DESCRIPTION !endif!insertmacro MUI_FUNCTION_DESCRIPTION_END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -