keeweb/package/nsis/check-running.nsh

32 lines
1.0 KiB
Plaintext
Executable File

!macro EnsureAppIsNotRunning
${For} $retryNumEnsureAppIsNotRunning 0 1000
DetailPrint "Checking if ${PRODUCT_EXE} is running..."
nsExec::ExecToStack /OEM 'tasklist /NH /FI "IMAGENAME eq ${PRODUCT_EXE}"'
Pop $0
${If} $0 != 0
DetailPrint "Error checking ${PRODUCT_EXE}: $0"
MessageBox MB_ICONSTOP|MB_OK "Failed to check whether process is running" /SD IDOK
Quit
${EndIf}
Pop $1
${StrStr} $0 $1 "${PRODUCT_EXE}"
${If} $0 == ""
DetailPrint "${PRODUCT_EXE} is not running"
${If} $isUpdaterMode == 1
Sleep 2000
${EndIf}
${ExitFor}
${Else}
${If} $isUpdaterMode == 1
${AndIf} $retryNumEnsureAppIsNotRunning < 5
DetailPrint "${PRODUCT_EXE} is running, waiting... next check in 2s"
Sleep 2000
${Else}
MessageBox MB_ICONQUESTION|MB_OKCANCEL|MB_DEFBUTTON1 "To proceed, please close ${PRODUCT_NAME} and click OK" /SD IDCANCEL IDOK ok
Quit
ok:
${EndIf}
${EndIf}
${Next}
!macroend