|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
|
.: NSIS - все вопросы :. часть 2.
|
|
Ветеран Сообщения: 1216 |
![]() Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
|
------- Отправлено: 12:02, 09-12-2012 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Если правильно понял то RMDir $APPDATA\MyFolder без ключа /r? |
|
|
------- Отправлено: 21:17, 04-05-2015 | #1603 |
|
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Dodakaedr:
Могу ещё такой код подкинуть, может, пригодится в работе (взят с офф. справки), по проверке содержимого директории, есть в ней файлы или нет: |
|
|
------- Отправлено: 22:27, 04-05-2015 | #1604 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить 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 | |
|