Цитата kotkovets:
wolkow70, Если выполнилась команда /REBOOTOK, то устанавливается флаг перезагрузки, на этом можно построить логику на финишной странице, в зависимости от флага - чебокс на финише будет отмечен или не отмечен, либо скрывать контрол (чебокс) на финишной страничке, т.е логику выполнять когда финишная страница открыта.
В справочнике > стандартные функции - почитать.
и команду IfRebootFlag ничего сверхсложного »
|
Дак ведь, при такой конструкции команда /REBOOTOK не должна быть выполнена, при отмеченной секции RestartExplorer, и соответтсвенно флагов перезагрузки не должно быть. Вот, что мне не понятно.. А реально, они появляются.
Код:
Section Uninstall Uninstall
SectionIn 1 RO
---бла-бла----
StrCmp $RestartExplorerSectionChecked "1" 0 +3
RMDir /r "$INSTDIR"
goto +2
RMDir /r /REBOOTOK "$INSTDIR"
SetAutoClose true
SectionEnd
;
Section /o "Un.Перезагрузка Проводника Windows" RestartExplorer
Var /Global RestartExplorerSectionChecked
StrCpy $RestartExplorerSectionChecked 1
SectionIn 1
ExecWait 'taskkill /F /IM explorer.exe' $0
DetailPrint "taskkill exit: [ $0 ]"
Sleep 500
StrCmp $0 0 0 +2
Exec "explorer.exe"
Delete "$INSTDIR\ShellEx\XnViewShellExt.dll"
RMDir /r "$INSTDIR\ShellEx\"
RMDir /r "$INSTDIR\"
SectionEnd