|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Ветеран Сообщения: 860
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Цитата K.A.V.:
|
||
------- Последний раз редактировалось Dodakaedr, 04-05-2015 в 21:02. Отправлено: 20:47, 04-05-2015 | #1601 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Dodakaedr:
Цитата Dodakaedr:
А протестировать скрипт из 5 строк - занятие для неудачников, ага? При указании команды SetShellVarContext all, переменные с путями будут ссылаться на общие папки до тех пор, пока вы не пропишите в коде SetShellVarContext current |
||
------- Отправлено: 21:09, 04-05-2015 | #1602 |
Ветеран Сообщения: 860
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Если правильно понял то RMDir $APPDATA\MyFolder без ключа /r? |
|
------- Отправлено: 21:17, 04-05-2015 | #1603 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Dodakaedr:
Могу ещё такой код подкинуть, может, пригодится в работе (взят с офф. справки), по проверке содержимого директории, есть в ней файлы или нет: |
|
------- Отправлено: 22:27, 04-05-2015 | #1604 |
Ветеран Сообщения: 860
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
------- Отправлено: 23:21, 04-05-2015 | #1605 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
при классическом интерфейсе. в модерне функция "зашита" в константу подробности в справке |
|
------- Последний раз редактировалось kotkovets, 05-05-2015 в 11:24. Отправлено: 11:10, 05-05-2015 | #1606 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Если речь идёт о инсталляторе с графическим интерфейсом, то последняя функция, которая будет выполнена - функция с именем .onGUIEnd, она будет выполнена в любом случае и всегда самой последней, если, конечно, инсталлер закрывается штатно без краша и убития процесса, и если процесс установки не запущен с ключом /S (тихая установка)
Если речь идёт о инсталляторе с графическим интерфейсом, который запущен с ключом "/S" (тихая установка без графического интерфейса), то последней функцией, которая будет выполнена - будет функция .onInstSuccess Можно поступить разными способами, тут только вопрос о том, какой функционал вам нужен и зачем вам последняя выполняемая функция Можете прописать команды в .onInstSuccess - будет выполняться всегда при всех условиях, только посмотрите сами, как она будет отрабабывать Можете добавить в эту функцию проверку на запуск с ключом "/S", чтобы, например, всегда выполнялась .onGUIEnd даже при тихой установки: Function .onInstSuccess # MessageBox MB_OK ".onInstSuccess" ${GetParameters} $R0 ${GetOptions} "$R0" "/S" $R0 IfErrors +2 0 call .onGUIEnd FunctionEnd Function .onGUIEnd MessageBox MB_OK|MB_ICONINFORMATION ".onGUIEnd" FunctionEnd В общем, тестируйте, смотрите, что вам больше подходит Если речь идёт о silent архиве без графического интерфейса в коде изначально - то там вы уже сами можете определить, какую функцию выполнять последней перед командой quit (закрытие инсталлятора) |
------- Отправлено: 14:07, 05-05-2015 | #1607 |
Ветеран Сообщения: 860
|
Профиль | Отправить PM | Цитировать Не могу решить проблему. При использовании
не хочет удалять папку $APPDATA\Color при завершении скрипта, если без файла то все отлично работает, но без файла никак. Думал через последнею функцию провести удаление, но тоже безрезультатно.
Цитата K.A.V.:
|
|
------- Отправлено: 16:00, 05-05-2015 | #1608 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Вы уж меня простите, если обижу, но это похоже на какой-то троллинг, либо вы сами себя запутали и ничего не поняли из наших ранних сообщений
1. Вы предоставляете код из двух строк, который распаковывает какой-то файл "License.license" 2. Вы тут же пишите, что не можете удалить папку "$APPDATA\Color" с файлами, хотя пустая папка удаляется, ранее шел разговор про команду RMDir, которую вы якобы поняли, как использовать 3. Вы удаляете папку "$APPDATA\Color" командой RMDir без ключа /r, в которой есть файлы, хотя вроде бы знаете, что команда RMDir без ключа /r не удаляет папки с файлами И если хотите, чтобы вам реально помогли - предоставляйте полный код с проблемным функционалом, а не какой-то бесполезный отгрызок из пары строк Цитата Dodakaedr:
|
|
------- Отправлено: 16:34, 05-05-2015 | #1609 |
Ветеран Сообщения: 860
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Код
;---Definitions---- !define SNAME "EQPortable" ; Best Compression SetCompress Auto SetCompressor /SOLID lzma SetCompressorDictSize 32 SetDatablockOptimize On ;----Includes---- !include "ProcessFunc.nsh" ;!include "FileFunc.nsh" ;-----Runtime switches---- CRCCheck off AutoCloseWindow false SilentInstall silent WindowIcon off ;-----Set basic information----- Name "${SNAME}" Caption "${SNAME}" OutFile "..\${SNAME}.exe" ;-----Version Information------ LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" VIProductVersion "1.0.6.0" VIAddVersionKey ProductName "EQ Portable" VIAddVersionKey FileDescription "EQPortable" Section "Main" ${If} ${ProcessExists} "eq.exe" MessageBox MB_ICONINFORMATION|MB_OK "Программа уже запущена!" Quit ${Else} SetShellVarContext current IfFileExists "$APPDATA\Color\EQ" 0 Rename "$APPDATA\Color" "$APPDATA\Color_Backup" IfFileExists "$EXEDIR\Data" 0 CopyFiles "$EXEDIR\Data\*.*" "$APPDATA\Color\EQ" SetShellVarContext all IfFileExists "$APPDATA\Color\Licenses\EQ" 0 Rename "$APPDATA\Color" "$APPDATA\Color_Backup" SetOutPath "$APPDATA\Color\Licenses\EQ" File "License.license" ExecWait "$EXEDIR\EQ\EQ.exe" Sleep 400 SetShellVarContext current CopyFiles "$APPDATA\Color\EQ\*.*" "$EXEDIR\Data" Sleep 800 RMDir /r "$APPDATA\Color" IfFileExists "$APPDATA\Color_Backup" 0 Rename "$APPDATA\Color_Backup" "$APPDATA\Color" SetShellVarContext all RMDir /r "$APPDATA\Color" IfFileExists "$APPDATA\Color_Backup" 0 Rename "$APPDATA\Color_Backup" "$APPDATA\Color" quit ${EndIf} SectionEnd ;Function .onInstSuccess ;SetShellVarContext all ;RMDir /r "$APPDATA\Color" ;IfFileExists "$APPDATA\Color_Backup" 0 ;Rename "$APPDATA\Color_Backup" "$APPDATA\Color" ;FunctionEnd Проблема в этом куске(не работает): |
|
------- Отправлено: 16:56, 05-05-2015 | #1610 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 | dimadr | Наборы обновлений для Windows XP/2003/Windows 7 | 267 | 14-02-2020 08:25 | |
[архив].: NSIS - все вопросы :. | kotkovets | Автоматическая установка приложений | 3387 | 09-12-2012 11:56 | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 | jameszero | Наборы обновлений для Windows XP/2003/Windows 7 | 1491 | 22-07-2011 22:42 | |
Выбор|модернизация процессора .:[все вопросы]:. Часть I | Myxa | Выбор отдельных компонентов компьютера и конфигурации в целом | 1845 | 01-01-2011 19:18 | |
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|