|
|
@@ -899,6 +899,28 @@ SectionEnd
|
|
|
; "Program Files" for AllUsers, "My Documents" for JustMe...
|
|
|
|
|
|
Function .onInit
|
|
|
+ StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst
|
|
|
+
|
|
|
+ ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" "UninstallString"
|
|
|
+ StrCmp $0 "" inst
|
|
|
+
|
|
|
+ MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \
|
|
|
+ "@CPACK_NSIS_PACKAGE_NAME@ is already installed. $\n$\nDo you want to uninstall the old version before installing the new one?" \
|
|
|
+ IDYES uninst IDNO inst
|
|
|
+ Abort
|
|
|
+
|
|
|
+;Run the uninstaller
|
|
|
+uninst:
|
|
|
+ ClearErrors
|
|
|
+ ExecWait '$0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
|
|
|
+
|
|
|
+ IfErrors uninst_failed inst
|
|
|
+uninst_failed:
|
|
|
+ MessageBox MB_OK|MB_ICONSTOP "Uninstall failed."
|
|
|
+ Abort
|
|
|
+
|
|
|
+
|
|
|
+inst:
|
|
|
; Reads components status for registry
|
|
|
!insertmacro SectionList "InitSection"
|
|
|
|