fix(installer): smooth in-place updates with auto-close of running app and overwrite
This commit is contained in:
1 file changed
+18
@@ -15,6 +15,7 @@ InstallDir "$LOCALAPPDATA\Programs\${APP_NAME}"
|
||||
InstallDirRegKey HKCU "Software\${APP_NAME}" "InstallDir"
|
||||
RequestExecutionLevel user
|
||||
SetCompressor /SOLID lzma
|
||||
SetOverwrite on
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON "../build/windows/icon.ico"
|
||||
@@ -104,6 +105,23 @@ LangString DESC_CTX ${LANG_ENGLISH} "Add 'Convert with ConvertGUI' to Windows Ex
|
||||
LangString DESC_CTX ${LANG_RUSSIAN} "Добавить «Convert with ConvertGUI» в контекстное меню видеофайлов Проводника."
|
||||
LangString DESC_DESKTOP ${LANG_ENGLISH} "Create a shortcut on the Desktop."
|
||||
LangString DESC_DESKTOP ${LANG_RUSSIAN} "Создать ярлык на Рабочем столе."
|
||||
LangString MSG_RUNNING ${LANG_ENGLISH} "${APP_NAME} is currently running.$\r$\n$\r$\nClick OK to close it and proceed with the update, or Cancel to abort."
|
||||
LangString MSG_RUNNING ${LANG_RUSSIAN} "Приложение ${APP_NAME} сейчас запущено.$\r$\n$\r$\nНажмите ОК, чтобы закрыть его и продолжить обновление, или Отмена для выхода."
|
||||
|
||||
Function .onInit
|
||||
check_running:
|
||||
nsExec::ExecToStack 'cmd /c tasklist /FI "IMAGENAME eq ${EXE_NAME}" | find /I "${EXE_NAME}"'
|
||||
Pop $0
|
||||
StrCmp $0 "0" 0 not_running
|
||||
MessageBox MB_OKCANCEL|MB_ICONQUESTION $(MSG_RUNNING) IDOK close_it IDCANCEL abort_it
|
||||
abort_it:
|
||||
Abort
|
||||
close_it:
|
||||
nsExec::ExecToLog 'taskkill /F /IM ${EXE_NAME}'
|
||||
Sleep 500
|
||||
Goto check_running
|
||||
not_running:
|
||||
FunctionEnd
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_APP} $(DESC_APP)
|
||||
|
||||
Reference in new issue
Block a user