До сих пор я выяснил, как обнаружить предыдущую установку моего программного обеспечения, прочитав ключи реестра и проверив, существует ли каталог.(Оба хорошо документированы в справочном файле NSIS).Теперь я хочу заставить пользователя указать другой каталог, если приложение уже установлено.(Не хочу принудительно удалять самостоятельно, потому что предыдущие версии просто удаляют все, включая сохраненные данные.)индикатор прогресса и т. д. Как добавить проверку на этом этапе в процессе установки?
Обновление - Попробовал решение Пола, но оно не работает.В верхней части скрипта я объявил
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE validateDirectory
!insertmacro MUI_PAGE_DIRECTORY
для ссылки на эту функцию:
Function validateDirectory
ReadRegStr $R0 HKLM "SOFTWARE\Aadhaar Enrolment Client" "Installdir"
Pop $R0
StrCmp $R0 $OUTDIR +1 +3
MessageBox MB_ICONSTOP|MB_OK 'The directory $OUTDIR already exists.Please choose a different directory.'
Abort
FunctionEnd
Эта функция отображает сообщение, но не прерывает его.Более того, если я нажму кнопку «Назад» на странице выбора каталога и снова нажму кнопку «Вперед», она просто продолжит установку.