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

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

Аватара для kotkovets

Ветеран


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

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


Цитата Aster:
Уважаю ваш труд, справка по NSIS действительно внушительная и виден громадный объём проделанной работы »
Спасибо на добром слове.
Цитата Aster:
Такая проверка мне нужна для того, чтобы пользователь не смог распаковать мой дистрибутив ни в какой другой каталог, кроме как в каталог с игрой YYY. »
В таком случае страничка выбора директории неуместна.
на примере 7-zip девятой версии
читать дальше »
Код: Выделить весь код
!include "MUI2.nsh"
!include "FileFunc.nsh"

InstallDirRegKey HKCU "Software\7-Zip" "Path" ;берем путь из реестра, в противном случае ниже код.
InstallDir "$PROGRAMFILES\7-zip"

!insertmacro MUI_PAGE_WELCOME
  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE LEAVE_COMPONENTS ;функция будет выполнена при закрытии странички компонентов
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English

Name "Test"
OutFile "Test.exe"
ShowInstDetails show

Function LEAVE_COMPONENTS
  ${IfNot} ${FileExists} "$INSTDIR\7z.exe"
  ${OrIfNot} ${FileExists} "$INSTDIR\7z.dll" ;логика ИЛИ-НЕ ;при необходимости пишем еще раз на указанный ваш файл
      MessageBox MB_OK "Не найден один из файлов!" IDOK
      Abort ;прерывание
  ${Else} 
     ;Здесь можно писать код проверки версии файлов и изменения файлов
     ${GetFileVersion} "$INSTDIR\7z.exe" $0 ; выявляем версию файла
     StrCpy $0 $0 1 ;берем из версии первую циферку(один первый символ)
     ;сравниваем версию
     ${If} $0 != 9
        MessageBox MB_OK "Это не 9 версия файла 7z" IDOK
        Abort
     ${EndIf}
     ;сравниваем пропатченный файл или нет плагом MD5
     ;;
     ;;

  ${EndIf}
FunctionEnd

Section MAIN
SectionEnd
Section MAIN_1
SectionEnd

Цитата Aster:
Принцип: проверка должна выявить наличие в выбранной папке конкретных файлов (других файлов, никак не связанных с предыдущей проверкой) и если файлы обнаружены - должно всплывать уведомление вида "Компоненты игры YYY были ранее изменены »
На офф. сайте найдите плагин MD5 и сверьте хэш-сумму оригинала, если не сходится прерывание.

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

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

Отправлено: 15:25, 21-11-2011 | #1909