2016-07-22 21:13:39 +02:00
|
|
|
!include package\nsis\defines.nsh
|
|
|
|
!include package\nsis\includes.nsh
|
|
|
|
!include package\nsis\check-running.nsh
|
2016-07-22 21:41:17 +02:00
|
|
|
|
|
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
|
|
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
|
|
|
|
Function .onInit
|
2020-05-14 22:59:11 +02:00
|
|
|
${If} ${IsNativeAMD64}
|
2016-07-22 21:41:17 +02:00
|
|
|
SetRegView 64
|
|
|
|
StrCpy $InstDir "$PROGRAMFILES64\${PRODUCT_NAME}"
|
|
|
|
${EndIf}
|
|
|
|
|
2020-05-14 22:59:11 +02:00
|
|
|
${If} ${IsNativeARM64}
|
|
|
|
StrCpy $InstDir "$PROGRAMFILES64\${PRODUCT_NAME}"
|
|
|
|
${EndIf}
|
|
|
|
|
2016-07-22 21:41:17 +02:00
|
|
|
!insertmacro MULTIUSER_INIT
|
|
|
|
|
|
|
|
${StrStr} $0 "$EXEPATH" "${PRODUCT_UNINST_TEMP_EXE}"
|
|
|
|
${If} $0 == ""
|
|
|
|
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Remove $(^Name) from your computer?" /SD IDYES IDYES yes
|
|
|
|
Abort
|
|
|
|
yes:
|
|
|
|
!insertmacro EnsureAppIsNotRunning
|
|
|
|
|
|
|
|
SetOverwrite on
|
|
|
|
CopyFiles "$EXEPATH" "$TEMP\${PRODUCT_UNINST_TEMP_EXE}"
|
|
|
|
${If} ${Silent}
|
|
|
|
Exec '"$TEMP\${PRODUCT_UNINST_TEMP_EXE}" /S'
|
|
|
|
${Else}
|
|
|
|
Exec '"$TEMP\${PRODUCT_UNINST_TEMP_EXE}"'
|
|
|
|
${EndIf}
|
|
|
|
Quit
|
|
|
|
${EndIf}
|
|
|
|
FunctionEnd
|
|
|
|
|
|
|
|
Function .onInstSuccess
|
|
|
|
HideWindow
|
|
|
|
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK
|
|
|
|
FunctionEnd
|
|
|
|
|
|
|
|
Section "MainSection" SEC01
|
|
|
|
!insertmacro EnsureAppIsNotRunning
|
|
|
|
|
|
|
|
DetailPrint "Removing desktop shortcut"
|
|
|
|
Delete "$DESKTOP\KeeWeb.lnk"
|
|
|
|
DetailPrint "Removing menu shortcut"
|
|
|
|
Delete "$SMPROGRAMS\KeeWeb\KeeWeb.lnk"
|
|
|
|
|
|
|
|
DetailPrint "Removing menu items"
|
|
|
|
RMDir "$SMPROGRAMS\KeeWeb"
|
|
|
|
|
|
|
|
ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallDir"
|
|
|
|
${If} $R0 == ""
|
|
|
|
DetailPrint "InstallDir key is absent"
|
|
|
|
Abort
|
|
|
|
${EndIf}
|
|
|
|
StrCpy $InstDir "$R0"
|
|
|
|
|
|
|
|
ClearErrors
|
|
|
|
DetailPrint "Removing app files from $InstDir"
|
|
|
|
Var /GLOBAL deleteRetry
|
|
|
|
${ForEach} $deleteRetry 1 3 + 1
|
|
|
|
RMDir /r "$InstDir"
|
|
|
|
${If} ${Errors}
|
|
|
|
ClearErrors
|
|
|
|
DetailPrint "Error removing files, retrying in a second"
|
|
|
|
Sleep 1000
|
|
|
|
${Else}
|
|
|
|
${ExitFor}
|
|
|
|
${EndIf}
|
|
|
|
${Next}
|
|
|
|
|
|
|
|
DetailPrint "Deleting registry keys"
|
|
|
|
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
|
|
|
|
|
|
|
DetailPrint "Unregistering file associations"
|
|
|
|
!insertmacro APP_UNASSOCIATE "kdbx" "kdbxfile"
|
|
|
|
DetailPrint "Updating file associations"
|
|
|
|
!insertmacro UPDATEFILEASSOC
|
|
|
|
|
|
|
|
DetailPrint "Done"
|
|
|
|
SetAutoClose true
|
|
|
|
SectionEnd
|