» IfRebootFlag: определяет флаг перезагрузки

K.A.V.
www.oszone.net
22.02.2010
Автор: kotkovets
Последнее обновление: 18.12.2010

IfRebootFlag [метка перехода, если обнаружен флаг] [метка перехода, если не обнаружен флаг]
Флаг перезагрузки может быть установлен командой Delete с использованием параметра /REBOOTOK (удалить файл при перезагрузке) - при неудачном удалении обычным способом.
Delete /REBOOTOK "$INSTDIR\somefile.dat"
 IfRebootFlag 0 +2
 MessageBox MB_OK "Обнаружен флаг перезагрузки"
Командой Rename с использованием параметра /REBOOTOK - при невозможности переименовать файл в обычном режиме.
Rename /REBOOTOK $INSTDIR\file.ext $INSTDIR\file.dat
 IfRebootFlag 0 +2
 MessageBox MB_OK "Обнаружен флаг перезагрузки"
Возможно установить флаг перезагрузки командой SetRebootFlag
SetRebootFlag true|false
Будьте внимательны! В этом примере применена команда перезагрузки!
!include "MUI2.nsh"

OutFile Reboot.exe
Caption "Пример перезагрузки"
Name "IfRebootFlag - пример"

!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

Section Reboot
 Sleep 1000 #пауза 1с для наглядности
 SetRebootFlag true
 IfRebootFlag 0 NotReboot
  MessageBox MB_ICONQUESTION|MB_YESNO "Перезагрузить компьютер ?" IDNO +2
  #Reboot #команда перезагрузки
 NotReboot:
  MessageBox MB_OK "Перезагрузка отменена!"
SectionEnd
Для реальной перезагрузки раскомментируйте строку Reboot.