как получить код выхода другого приложения в nsis - PullRequest
4 голосов
/ 30 января 2012

В моем файле .nsi я звоню ExecWait '"$INSTDIR\application.exe" ' $0. В application.exe я возвращаю коды выхода для успеха и неудач. Как перехватить эти коды выхода в файле .nsi.

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Если при выполнении ExecWait произошла ошибка, содержимое переданной пользовательской переменной не определено.

Чтобы просто проверить, правильно ли выполнена программа, проверьте флаг ошибки. (кстати, NSIS ожидает ноль для успеха и ненулевой для ошибки)

ClearErrors
ExecWait '"$INSTDIR\application.exe"'
IfErrors 0 noError
; Handle error here
noError:
4 голосов
/ 30 января 2012

Код завершения приложения будет сохранен в переменной, которая передается как 2-й аргумент в ExecWait, поэтому в вашем примере $ 0.

http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.1.4

...