Ожидает ли nsExec::ExecToStack завершения процесса?(NSIS)

#windows #dll #nsis #vcredist

#Windows #dll #nsis #vcredist

Вопрос:

Я пытаюсь установить VC_redist.x64_v14.27.29016.0.exe использование установщика NSIS в автоматическом режиме без взаимодействия. Это код:

 nsExec::ExecToStack 'VC_redist.x64_v14.27.29016.0.exe /install /quiet /norestart'
    pop $0
    pop $1  
  

Я использую ExecToStack для получения кода выхода.

Мой вопрос: могу ли я быть уверен, что nsExec::ExecToStack ожидает завершения процесса, а затем возвращает код выхода? Есть ли разница между ExecWait и nsExec::ExecToStack??

Я хочу знать, успешно ли установлен исполняемый файл vcredist, прежде чем продолжить остальную часть моей установки.

введите описание изображения здесь

Комментарии:

1. Вы действительно должны использовать полный путь при выполнении чего-либо.

Ответ №1:

Да, подключаемый модуль nsExec будет ожидать дочернего процесса. Однако он не будет ждать внуков, которые переживут его родительский процесс.

nsExec предназначен для консольных приложений, вам, вероятно, следует просто использовать ExecWait .

 ExecWait '"$tempredist.exe" /something /whatever' $0
DetailPrint "Exit code is $0"