|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Добрый день.
У меня возникло пара вопросов, ответьте пожалуйста: 1) Как предотвратить повторный запуск инсталлятора? (без плагинов и прочего) 2) Как сделать, чтоб файлы после инсталляции, были с атрибутами скрытый и системный? ps в другом инсталляторе ставил атрибуты, а потом собирал инсталлятор и атрибуты сохранялись. а в этом так не получается. 3) Как можно добиться максимального сжатия? может есть какой то плагин позволяющий очень сильно сжимать? Или можно как то сжимать файлы несколько раз? ps winrar сильнее сжимает. pss в nsis'e ставлю максимальное... но всё равно не сильно жмет Спасибо! |
Последний раз редактировалось Tankan, 17-06-2011 в 10:05. Отправлено: 09:59, 17-06-2011 | #1261 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Копаюсь с функцией InstallFolderInternal из любимого VLC.
И вот, что интересно: Var UninstallLog !macro OpenUninstallLog FileOpen $UninstallLog "$INSTDIR\uninstall.log" a FileSeek $UninstallLog 0 END !macroend !macro CloseUninstallLog FileClose $UninstallLog SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN !macroend !macro InstallFile FILEREGEX File "${FILEREGEX}" !define Index 'Line${__LINE__}' FindFirst $0 $1 "$INSTDIR\${FILEREGEX}" StrCmp $0 "" "${Index}-End" "${Index}-Loop:" StrCmp $1 "" "${Index}-End" FileWrite $UninstallLog "$1$\r$\n" FindNext $0 $1 Goto "${Index}-Loop" "${Index}-End:" !undef Index !macroend ; !macro InstallFolder FOLDER File /r "${FOLDER}" Push "${FOLDER}" Call InstallFolderInternal !macroend ; Function InstallFolderInternal Pop $9 !define Index 'Line${__LINE__}' FindFirst $0 $1 "$INSTDIR\$9\*" StrCmp $0 "" "${Index}-End" "${Index}-Loop:" StrCmp $1 "" "${Index}-End" StrCmp $1 "." "${Index}-Next" StrCmp $1 ".." "${Index}-Next" IfFileExists "$9\$1\*" 0 "${Index}-Write" Push $0 Push $9 Push "$9\$1" Call InstallFolderInternal Pop $9 Pop $0 Goto "${Index}-Next" "${Index}-Write:" FileWrite $UninstallLog "$9\$1$\r$\n" "${Index}-Next:" FindNext $0 $1 Goto "${Index}-Loop" "${Index}-End:" !undef Index FunctionEnd ; Section "!${PRODUCT_NAME}" Install SectionIn 1 2 3 RO SetShellVarContext all SetOutPath "$INSTDIR" !insertmacro OpenUninstallLog ЕСЛИ файл скрипта лежит в одной директории с файлами установки и при этом прописать так: !insertmacro InstallFile vlc.exe !insertmacro InstallFile vlc.exe.manifest !insertmacro InstallFile libvlc.dll !insertmacro InstallFile libvlc.dll.manifest То при установке устанавливаемые файлы в логе UninstallLog прописываются . А, если файл скрипта поместить в другую папку и прописать пути к файлам: !insertmacro InstallFile "${FILEPATH}\vlc\vlc.exe" !insertmacro InstallFile "${FILEPATH}\vlc\vlc.exe.manifest" !insertmacro InstallFile "${FILEPATH}\vlc\libvlc.dll" !insertmacro InstallFile "${FILEPATH}\vlc\libvlc.dll.manifest" То инсталляция происходит нормально, но списка файлов в UninstallLog нет В чем дело не пойму .... Может кто знает в чем заковырка? |
------- Отправлено: 10:08, 17-06-2011 | #1262 |
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Tankan
1. Можно сделать так: 3. Для NSIS есть плагин для распаковки 7z архивов, используй его. Так же могу скинуть плагин для распаковки FreArc архивов. |
------- Отправлено: 10:30, 17-06-2011 | #1263 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать sawe,
Спасибо! то что нужно! |
Отправлено: 11:01, 17-06-2011 | #1264 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Цитата sawe:
или он в какую переменную передается? |
|
Отправлено: 12:11, 17-06-2011 | #1265 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Krinkels,
1. Как так? конкретный код дай, который мне можно встатвить в свой. 2. По этому вопросу что скажите? Как установить атрибуты на файлы, чтоб извлекались и билы скрытие и системные. 3. А при чем тут распаковка? если мне нужна упаковка с сильным скажитем. Возможно даже, что сжимать несколько раз, чтоб добиться меньшего размера инсталлятора. Пожалуйства ответьте, кто хорошо понимает в nsis, как можно сдлать этакое. |
Отправлено: 15:01, 17-06-2011 | #1266 |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Цитата funtykin:
|
|
Отправлено: 17:52, 17-06-2011 | #1267 |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Цитата Tankan:
NORMAL или FILE_ATTRIBUTE_NORMAL (или просто 0) ARCHIVE или FILE_ATTRIBUTE_ARCHIVE HIDDEN или FILE_ATTRIBUTE_HIDDEN OFFLINE или FILE_ATTRIBUTE_OFFLINE READONLY или FILE_ATTRIBUTE_READONLY SYSTEM или FILE_ATTRIBUTE_SYSTEM TEMPORARY или FILE_ATTRIBUTE_TEMPORARY Цитата Tankan:
Можно так же положи в папку со скриптом файл upx.exe и вставь этот код !define HAVE_UPX !ifdef HAVE_UPX !packhdr tmpexe.tmp "UPX --best -q --compress-icons=0 tmpexe.tmp" !endif Я в таких случаях использую 7-Zip архиватор, попробуй мою сборку этого архиватора Zip 9.22 с последним SFX или с сайта автора SFX. NSIS имеет ограничение на файл размером более 2GB, и при большом размере файла инсталлятора иконка не видна, поэтому лучше прикреплять большие файлы, и что бы сильно не мудрить, можно использовать такой код: Copyfiles /SILENT "$EXEDIR\Имя_файла.exe" "$INSTDIR\Имя_файла.exe" # паравозик! ExecWait "$INSTDIR\Имя_файла.exe" # извлечь ожидая завершения! Delete "$INSTDIR\Имя_файла.exe" # если более не нужен! -- |
||
Отправлено: 19:22, 17-06-2011 | #1268 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать sawe, Спасибо я вчера еще разобрался.. то что вы мне первый раз написали оказалось достаточным чтобы начать понимать как это работает.
|
Отправлено: 10:18, 18-06-2011 | #1269 |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Цитата funtykin:
|
|
Отправлено: 15:29, 18-06-2011 | #1270 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. | ssaram | Программное обеспечение Windows | 406 | 12-02-2022 19:45 | |
WinstyleMonitor .:[все вопросы]:. | Mr dUSHA | Проект WinStyle | 331 | 12-02-2014 13:15 | |
Delphi - Delphi .: [все вопросы] :. | Serega | Программирование и базы данных | 94 | 04-05-2013 18:45 | |
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. | Microsoft Windows 2000/XP | 105 | 30-06-2010 11:58 | ||
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|