Как вызвать раздел из метки, используемой в функции в NSIS? - PullRequest
2 голосов
/ 09 ноября 2011

Я сравниваю проверку версии в функции, вызываемой .onInit. Если эта проверка версии говорит о том, что машина имеет более старую версию, я хотел бы удалить старую версию.Как этого добиться ??Мой метод заключается в том, что если имеется более старая версия, то в окне сообщения отображается, что у вас установлена ​​более старая версия, нажмите кнопку ОК, чтобы установить новую версию, или отмените, чтобы продолжить работу со старой версией.IDOK в порядке IDCANCEL отменить в порядке: ExecWait Uninstal;выполняет uninstall.exe отмена: прервать;продолжить вид старой версии.

проблема здесь в том, что ExecWait выполняется параллельно с установкой новой версии.(оба они получают 2 разных потока)

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

Пожалуйста, объясните мне, как вызывать раздел из функции.

Заранее спасибо

1 Ответ

0 голосов
/ 09 ноября 2011

Вы не можете вызвать раздел, но вы можете сделать это:

Function MySectionCode
# My code goes here
FunctionEnd

Function .onInit
call MySectionCode
FunctionEnd

Section "MySection"
call MySectionCode
SectionEnd

И чтобы было ясно, ExecWait всегда ожидает дочерний процесс, но иногда дочерний процесс запускает свои дочерние процессы и не ждет их. Чтобы дождаться удаления NSIS, вам необходимо использовать специальный _? = Параметр .

...