diff --git a/cmake/install/windows/NSIS.template.in b/cmake/install/windows/NSIS.template.in index f22622477..5b53baa60 100644 --- a/cmake/install/windows/NSIS.template.in +++ b/cmake/install/windows/NSIS.template.in @@ -291,6 +291,27 @@ Function AddToPath Pop $0 FunctionEnd +Function checkRunning + retry: + ClearErrors + ExecWait '"cmd" /C ""%SystemRoot%\System32\tasklist" /NH /FI "IMAGENAME eq @CPACK_NSIS_MUI_FINISHPAGE_RUN@" | "%SystemRoot%\System32\find" /I /C "@CPACK_NSIS_MUI_FINISHPAGE_RUN@""' $0 + IntCmp $0 1 notRunning + MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "@CPACK_NSIS_MUI_FINISHPAGE_RUN@ is running. Please close it first from the application menu and restart the installation." /SD IDCANCEL IDRETRY retry + Abort + notRunning: +FunctionEnd + +;Duplicate function because of shitty behavior of NSIS that need "un." form for uninstaller. +Function un.checkRunning + retry: + ClearErrors + ExecWait '"cmd" /C ""%SystemRoot%\System32\tasklist" /NH /FI "IMAGENAME eq @CPACK_NSIS_MUI_FINISHPAGE_RUN@" | "%SystemRoot%\System32\find" /I /C "@CPACK_NSIS_MUI_FINISHPAGE_RUN@""' $0 + IntCmp $0 1 notRunning + MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "@CPACK_NSIS_MUI_FINISHPAGE_RUN@ is running. Please close it first from the application menu and restart the installation." /SD IDCANCEL IDRETRY retry + Abort + notRunning: +FunctionEnd + ; RemoveFromPath - Remove a given dir from the path ; Input: head of the stack @@ -801,7 +822,9 @@ FunctionEnd ;-------------------------------- ; determine admin versus local install Function un.onInit - + + Call un.checkRunning + ClearErrors UserInfo::GetName IfErrors noLM @@ -963,13 +986,10 @@ SectionEnd ; "Program Files" for AllUsers, "My Documents" for JustMe... + + Function .onInit - retry: - ClearErrors - ExecWait '"cmd" /C ""%SystemRoot%\System32\tasklist" /NH /FI "IMAGENAME eq @CPACK_NSIS_MUI_FINISHPAGE_RUN@" | "%SystemRoot%\System32\find" /I /C "@CPACK_NSIS_MUI_FINISHPAGE_RUN@""' $0 - IntCmp $0 1 notRunning - MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "@CPACK_NSIS_MUI_FINISHPAGE_RUN@ is running. Please close it first from the application menu and restart the installation." /SD IDCANCEL IDRETRY retry - Abort + Call checkRunning notRunning: