Цитата a--e:
так. если я все правильно понял, для каждого файла *.pat файл надо создавать отдельно? »
|
совершенно верно, нужно для каждого файла, и файл .pat для конкретного файла свой
я скрипты писал и на 7000 строк и нормально, дело тренировки, можно для этих дел макрос сварганить и 15 раз вызывать.
Вот такой макрос для себя делал, пользуйтесь:
Код:

Page Instfiles
Name "Example"
OutFile "Example.exe"
ShowInstDetails show
!define VPatchFile "!insertmacro VPatchFile"
!macro VPatchFile PATCHDATA SOURCEFILE TEMPFILE VALUE
Push $1
Push $2
Push $3
Push $4
Push `${SOURCEFILE}`
Push `${TEMPFILE}`
Pop $2
Pop $3
InitPluginsDir
GetTempFileName `$1` $PLUGINSDIR
File `/oname=$1` `${PATCHDATA}`
vpatch::vpatchfile `$1` `$3` `$2`
Pop $4
StrCpy $4 $4 2
StrCmp $4 "OK" +4
SetErrors
DetailPrint "Vpatch: error"
Goto +6
IntCmp ${VALUE} 1 0 +6 +6
IfFileExists `$2` 0 +4
Delete $3
Rename /REBOOTOK `$3` `$2`
Delete $1
Pop $4
Pop $3
Pop $2
Pop $1
!macroend
Section "Main"
SetOutPath "$EXEDIR"
File "D:\Nero_designer\Nero Burning ROM\nero.exe"
${VPatchFile} "Nero.pat" "$EXEDIR\Nero.exe" "Nero Express.exe" 1
SectionEnd
Nero.pat - должен лежать рядом со скриптом
Nero Express.exe - имя пропатченного файла, т.е сохраниться с указанным именем в одной директории оригинального файла
1- удалить оригинал, 0 - не удалять
Условие: имя оригинала и патченного файла не должны совпадать