From fc8ea620c07f62bfdca2359ea06d72a8784e9f22 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Fri, 15 Feb 2019 15:13:55 +0100 Subject: [PATCH] Uninstall previous install when running Windows installer --- installer/picard-setup.nsi.in | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/installer/picard-setup.nsi.in b/installer/picard-setup.nsi.in index dd9f3cfe3..76955fc09 100644 --- a/installer/picard-setup.nsi.in +++ b/installer/picard-setup.nsi.in @@ -184,16 +184,34 @@ Function un.onInit FunctionEnd Function .onInit + ; Abort installation if this is not a 64 bit system ${IfNot} ${RunningX64} MessageBox MB_ICONSTOP|MB_OK "This version of ${PRODUCT_NAME} requires a 64-bit Windows system." Abort ${EndIf} + ; Abort installation if Picard is currently running FindWindow $0 "${WNDCLASS}" "${WNDTITLE}" StrCmp $0 0 continueInstall MessageBox MB_ICONSTOP|MB_OK "The application you are trying to install is running. Close it and try again." Abort continueInstall: + + ; Uninstall previous installation + ReadRegStr $R0 HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" + StrCmp $R0 "" skipUninstall + + MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \ + "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \ + previous version or `Cancel` to cancel this upgrade." \ + IDOK uninstall + Abort + + uninstall: + ClearErrors + Exec $R0 + + skipUninstall: !insertmacro UnselectSection ${desktop} FunctionEnd