; Execute a command. If the command fail, shows a message box and quit the installation !macro ExecOrQuit Cmd MsgBoxText nsExec::Exec "${Cmd}" Pop $0 ${If} $0 != 0 MessageBox MB_ICONSTOP|MB_OK "${MsgBoxText}" Quit ${EndIf} !macroend !macro ExecWithRetry Cmd RetryMsg !define unqId ${__LINE__} StrCpy $0 1 ${Do} nsExec::ExecToLog '${Cmd}' Pop $0 ${If} $0 != 0 MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "${RetryMsg}" IDRETRY labalRetry_${unqId} IDCANCEL labalCancel_${unqId} labalCancel_${unqId}: Quit labalRetry_${unqId}: ${EndIf} ${LoopUntil} $0 == 0 !undef unqId !macroend .