[архив].: NSIS - все вопросы :.
-
MKN
Re: [архив].: NSIS - все вопросы :.
kotkovets,
А можно для создания вышеискомых переменных, определив системный диск в переменную, подставить эту переменную вместо C:\ ?
А можно для создания вышеискомых переменных, определив системный диск в переменную, подставить эту переменную вместо C:\ ?
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата a--e:
так. если я все правильно понял, для каждого файла *.pat файл надо создавать отдельно?
совершенно верно, нужно для каждого файла, и файл .pat для конкретного файла свой
я скрипты писал и на 7000 строк и нормально, дело тренировки, можно для этих дел макрос сварганить и 15 раз вызывать.
Вот такой макрос для себя делал, пользуйтесь:
Код:
Nero.pat - должен лежать рядом со скриптом
Nero Express.exe - имя пропатченного файла, т.е сохраниться с указанным именем в одной директории оригинального файла
1- удалить оригинал, 0 - не удалять
Условие: имя оригинала и патченного файла не должны совпадать
так. если я все правильно понял, для каждого файла *.pat файл надо создавать отдельно?
[архив].: NSIS - все вопросы :.
совершенно верно, нужно для каждого файла, и файл .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
SectionEndNero.pat - должен лежать рядом со скриптом
Nero Express.exe - имя пропатченного файла, т.е сохраниться с указанным именем в одной директории оригинального файла
1- удалить оригинал, 0 - не удалять
Условие: имя оригинала и патченного файла не должны совпадать
-
MKN
Re: [архив].: NSIS - все вопросы :.
После выхода из инсталлятора (его закрытия) необходимо убить процесс и удалить его файл .
Процесс выгружаю так:
Код:
А вот как удалить ставший не нужным файл APP.exe (из $temp) - не могу придумать. Инсталлятор то уже закрыт...
Что можно сделать ?
Процесс выгружаю так:
Код:
Код: Выделить всё
Function .onGUIEnd
nsProcess::_FindProcess /NOUNLOAD "APP.exe"
Pop $R0
StrCmp $R0 0 0 +3
nsProcess::_KillProcess /NOUNLOAD "APP.exe"
StrCmp $R0 603 0 +2
FunctionEndА вот как удалить ставший не нужным файл APP.exe (из $temp) - не могу придумать. Инсталлятор то уже закрыт...
Что можно сделать ?
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
a--e,
скачайте на 92 стр. темы справочник, там есть ответы на ваши вопросы..
File /oname=$PLUGINSDIR\path.pat "Effects.vfs.pat"
Означает взять Effects.vfs.pat и скопировать в папку $PLUGINSDIR с именем path.pat
далее ясно почему ошибка...
Delete "c:\Temp\{app}\data\NEW_Effects.vfs" и никогда не применяйте абсолютные пути в скриптах, кроме забора файлов в инсталлятор.
Delete "$PLUGINSDIR\path.pat"
Почитайте в справочнике про переменные окружения
Код:
скачайте на 92 стр. темы справочник, там есть ответы на ваши вопросы..
File /oname=$PLUGINSDIR\path.pat "Effects.vfs.pat"
Означает взять Effects.vfs.pat и скопировать в папку $PLUGINSDIR с именем path.pat
далее ясно почему ошибка...
Delete "c:\Temp\{app}\data\NEW_Effects.vfs" и никогда не применяйте абсолютные пути в скриптах, кроме забора файлов в инсталлятор.
Delete "$PLUGINSDIR\path.pat"
Почитайте в справочнике про переменные окружения
читать дальше »
Код:
Код: Выделить всё
OutFile "test.exe"
Section
SetOutPath "c:\"
File "c:\Temp\{app}\data\Effects.vfs"
InitPluginsDir
File /oname=$PLUGINSDIR\Effects.vfs.pat "Effects.vfs.pat"
vpatch::vpatchfile "$PLUGINSDIR\Effects.vfs.pat" "c:\Effects.vfs" "c:\path_Effects.vfs"
Delete "c:\Effects.vfs"
Rename "c:\path_Effects.vfs" "c:\Effects.vfs"
SectionEnd-
Krinkels
Re: [архив].: NSIS - все вопросы :.
Друзья, сделал плагин для NSIS с помощю которого можно комфортно использовать unarc.dll в инсталяторе NSIS. В архиве так же присутствует скрипт с примером. nsisarc.dll и unarc.dll нужно закинуть в папку NSIS\Plugins. Это первая версия, по этому прошу не сильно пинать 

Скрин
Скачать
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Krinkels A а мануальчик, как использовать то?
Код:
И что, можно подставить в пустые кавычки ???
Код:
Код: Выделить всё
nsisarc::ArcExtract "1.arc" "tmp" "" "" ""И что, можно подставить в пустые кавычки ???
-
Krinkels
Re: [архив].: NSIS - все вопросы :.
Упс, пардон.
nsisarc::ArcExtract
"1.arc" - Архив. Когда у себя тестил он лежал рядом с инсталятором
"tmp" - Папка куда нужно распаковать архив
"" - Вроде для пароля
"" - Без понятия для чего, нужно у автора спрашивать
"" - Без понятия для чего, нужно у автора спрашивать
nsisarc::ArcExtract
"1.arc" - Архив. Когда у себя тестил он лежал рядом с инсталятором
"tmp" - Папка куда нужно распаковать архив
"" - Вроде для пароля
"" - Без понятия для чего, нужно у автора спрашивать
"" - Без понятия для чего, нужно у автора спрашивать
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Krinkels,
Я думал вы автор, беспарольные архивы распаковывает, как заявлено, а вот с паролем никак!
Уточните у автора параметры все таки!
Я думал вы автор, беспарольные архивы распаковывает, как заявлено, а вот с паролем никак!
Уточните у автора параметры все таки!
-
Krinkels
Re: [архив].: NSIS - все вопросы :.
Цитата racner:
То есть дело в том, какая кодировка настроена для вывода текста в окне лога установки через команду nsExec::ExecToLog, как её переключить подскажите пожалуйста ?
Проблема в самом плагине nsExec - не поддерживает кириллицу, он же строки такие передает в ListBox (окно деталей) установщика. буржуи писали...
То есть дело в том, какая кодировка настроена для вывода текста в окне лога установки через команду nsExec::ExecToLog, как её переключить подскажите пожалуйста ?
[архив].: NSIS - все вопросы :.
Проблема в самом плагине nsExec - не поддерживает кириллицу, он же строки такие передает в ListBox (окно деталей) установщика. буржуи писали...

-
Krinkels
Re: [архив].: NSIS - все вопросы :.
Подскажите пожалуйста, как решить такую задачу :
Необходимо дождаться появления(создания) file.txt в $TEMP и как только он появится (когда именно - неизвестно), закрыть инсталлятор.
Необходимо дождаться появления(создания) file.txt в $TEMP и как только он появится (когда именно - неизвестно), закрыть инсталлятор.