Nano Hash - криптовалюты, майнинг, программирование

как я могу заставить мой установщик проверять недопустимую установку папки?

На самом деле я установил другую версию программного обеспечения на один и тот же компьютер, поэтому хочу проверить папку на наличие обеих версий, когда пользователь переходит к третьей версии установки. Я пытаюсь использовать цикл, но программа установки не работает. Заранее спасибо.

У меня уже установлено 2 версии одного и того же программного обеспечения на одном компьютере. Я хочу, чтобы при установке третьей версии сценарий проверял путь и не позволял пользователю устанавливать по тому же пути, по которому уже установлены две предыдущие версии.

Function .onVerifyInstDir




  nsArray::Set array 1.6
  nsArray::Set array 1.7
  nsArray::Set array 1.8



  nsArray::Length array
  Pop $R0
  ;DetailPrint `array length: $R0`

  StrCpy $R1 0
  ${DoWhile} $R1 < $R0
    nsArray::Get array $R1
    Pop $R2
    StrCpy $tempregistry "$(^Name)_$R2"

    ;DetailPrint `MyArray2[$R1] is $R2`



 ReadRegStr $path  HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal\$tempregistry""InstallLocation"  ;fetching installed location

   ${If} $path == ""


   ${Else}
   strCmp $path $INSTDIR 0 pathGood
   ;Abort
    IntOp $R1 $R1 + 1
   ${EndIf}  
  ${Loop}


    PathGood:
  FunctionEnd
10.01.2013

  • Не могли бы вы попытаться объяснить немного больше о том, что вы пытаетесь сделать, и опубликовать код, который у вас есть в настоящее время? 10.01.2013
  • не могли бы вы помочь, теперь я добавил подробности моей проблемы 10.01.2013

Ответы:


1

Вот шаги

  1. Сохраните название вашего продукта или запись реестра в переменной.
  2. Сохраните путь для установки в переменной, например, $path
  3. Внутри цикла проверьте запись в реестре.

    ReadRegStr $pdt HKLM "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\Microsoft\Windows\CurrentVersion\Uninstall\имя продукта

  4. Если найдено, извлеките значение установленного местоположения и сохраните его в переменной; например, $path1 ReadRegStr $path1 $pdt "расположение установки", иначе продолжайте

  5. ${if} $path == $path1 messagebox mb_ok "В пути уже установлена ​​другая версия"

  6. ${else} продолжить
  7. ${конец}
14.05.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..