Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


wolkow70, функция un.INSTFILES_LEAVE выполняется ВСЕГДА!
Проверяет наличие файлика DefragglerShell.dll и на основе проверки "решает" показывать стр. перезагрузки сейчас или нет!
И принудительно устанавливает флаги перезагрузки - банальная перестраховка.
Код: Выделить весь код
${If} ${FileExists} "$INSTDIR\DefragglerShell.dll" 
      Delete /REBOOTOK "$INSTDIR\DefragglerShell.dll"
      SetRebootFlag true
${Else}
      SetRebootFlag false 
${EndIf}
И еще один момент, если удаление задано с флагом /REBOOTOK, но файлы или файл удалились удачно,
установщик устанавливает флаг перезагрузки - false,
если неудачное удаление(по каким то причинам) установщик устанавливает флаг перезагрузки - true
Это легко проверить инсценировкой ситуации, например создать архив и держать архив открытым программой архиватором, то вы не сможете удалить архив, файл занят:
Код: Выделить весь код
  Delete /REBOOTOK "$EXEDIR\Linker.zip"
  Ifrebootflag 0 +2
      MessageBox MB_OK "true" IDOK
  Ifrebootflag +2
     MessageBox MB_OK "false" IDOK
---
А уже на страничке финиша, если true - установщик предложит перезагрузку.
если false - установщик не предложит перезагрузку.
---
И еще важный аспект, если вы ловите в скрипте флаг пререзагрузки, не забудьте снова установить
предыдущий флаг перезагрузки при необходимости, потому что команда Ifrebootflag
определяет состояние флага и после определения сбрасывает в false или в неопределенное состояние.
Код: Выделить весь код
  Delete /REBOOTOK "$EXEDIR\Linker.zip"
  Ifrebootflag 0 +3
      MessageBox MB_OK "true" IDOK
      SetRebootFlag true
  Ifrebootflag +3
      MessageBox MB_OK "false" IDOK
      SetRebootFlag false
Что вам нужно, решаете сами, поэтому поводу я вам разжевал все и повторяться не буду.

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 17-11-2011 в 19:40.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:20, 17-11-2011 | #1902