[архив].: NSIS - все вопросы :.

Ответить
 • Просмотры: 20
Аватара пользователя
wolkow70

Re: [архив].: NSIS - все вопросы :.

Сообщение wolkow70 »

Добрый день.

У меня возникло пара вопросов, ответьте пожалуйста:

1) Как предотвратить повторный запуск инсталлятора? (без плагинов и прочего)

2) Как сделать, чтоб файлы после инсталляции, были с атрибутами скрытый и системный?

ps в другом инсталляторе ставил атрибуты, а потом собирал инсталлятор и атрибуты сохранялись. а в этом так не получается.

3) Как можно добиться максимального сжатия? может есть какой то плагин позволяющий очень сильно сжимать?

Или можно как то сжимать файлы несколько раз?

ps winrar сильнее сжимает.

pss в nsis'e ставлю максимальное... но всё равно не сильно жмет



Спасибо!
Аватара пользователя
punsh

Re: [архив].: NSIS - все вопросы :.

Сообщение punsh »

WriteRegStr HKLM "SOFTWARE\BurnAware\Install" "InstallEntry" "?"



как прописать выше этой строчки, чтобы заместь "?" было полное имя компьютера из HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

punsh

Сначала читаем значение параметра, к примеру AltDefaultDomainName и сохраняем в $R1



Код:

Код: Выделить всё

ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" "AltDefaultDomainName"

а затем
тыц




Код:

Код: Выделить всё

  WriteRegStr HKLM "SOFTWARE\BurnAware\Install" "InstallEntry" "$R1"
Аватара пользователя
CyberMaster

Re: [архив].: NSIS - все вопросы :.

Сообщение CyberMaster »

Подскажите, как лучше всего делать инсталлятор для игр? Тупо запаковать все в один .exe не вариант, так как такой exe файл, весом в 4 гига например, запускается долго, и требует больших усилий от компьютера.
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

Цитата sawe:







Код:

Код: Выделить всё

!include MUI.nsh ; интерфейс MUI2.nsh не катит! 
 SetCompressor /SOLID lzma
 XPStyle on
Name "MMM"
 OutFile Test_file.exe
InstallDir "$PROGRAMFILES\MMM" # папка установки по умолчанию!
 InstallDirRegKey HKLM "Software\MMM" "" # получить установку папки из реестра если доступно!
 RequestExecutionLevel user
;Спец страницы!
 !define MUI_PAGE_CUSTOMFUNCTION_PRE WelcomePageSetupLinkPre
 !define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomePageSetupLinkShow
 !define MUI_WELCOMEPAGE_TITLE "Вас приветствует установщик $(^Name)"
 !define MUI_TEXT_WELCOME_INFO_TEXT "Пожалуйста закройте все работающие приложения. \
 $\nЭто обновит системные файлы без перезагрузки.$\n$\n$\nВыберите файл для вашей установки."
;Последовательность открытия страниц!
 !insertmacro MUI_PAGE_WELCOME
 !insertmacro MUI_PAGE_DIRECTORY
 !insertmacro MUI_PAGE_INSTFILES
 !insertmacro MUI_LANGUAGE Russian
Function WelcomePageSetupLinkPre
 var /global Filic
 StrCpy $Filic "$EXEDIR\Text.txt"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" 4 # счетчик увеличения!
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" 100 # ограничение размера верхней метки!
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Type" FileRequest # тип!
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Text" ""
; Определите фильтр, для элементов которые можно выбрать, разделять чертой | без пробелов
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Filter" "Filter=Text Files|*.txt|Programs|*.exe;*.com|All Files|*.*"
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "State" "$Filic" # состояние!
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Left" 120 # отступ слева! 
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" 100 # отступ от верха! 
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Right" 320 # длина вправо! 
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" 112 # высота строки! 
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Flags" "NOTABSTOP|FILE_EXPLORER" # флаг!
 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "HWND" "" # высота строки! 
FunctionEnd
Function WelcomePageSetupLinkShow
 !insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd
Section -bbbbbb # секция установки файлов!
/*------- MMM ---------*/
SectionEnd





а как тут выцарапать путь указанного файла?

или он в какую переменную передается?
Аватара пользователя
CyberMaster

Re: [архив].: NSIS - все вопросы :.

Сообщение CyberMaster »

А этот плагин умеет работать с 7z, cab архивами?
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

Цитата funtykin:



а как тут выцарапать путь указанного файла?
[архив].: NSIS - все вопросы :.




Объясни подробно, что и как вам нужно и для какой цели, очень часто бывает, что решение намного проще чем вы его себе представляете в начале!
Аватара пользователя
SnakeSel

Re: [архив].: NSIS - все вопросы :.

Сообщение SnakeSel »

Цитата Tankan:



По этому вопросу что скажите? Как установить атрибуты на файлы, чтоб извлекались и билы скрытие и системные.
[архив].: NSIS - все вопросы :.






Код:

Код: Выделить всё

  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

Пример применения:



Код:

Код: Выделить всё

SetFileAttributes "$INSTDIR\имя_файл.exe" ARCHIVE|HIDDEN|SYSTEM|READONLY


Цитата Tankan:



3. А при чем тут распаковка? если мне нужна упаковка с сильным скажитем.
[архив].: NSIS - все вопросы :.




Штатными средствами NSIS можно увеличить сжатие



Код:

Код: Выделить всё

SetCompressor /FINAL /SOLID lzma

Можно так же положи в папку со скриптом файл upx.exe[/i] и вставь этот код



Код:

Код: Выделить всё

!define HAVE_UPX
!ifdef HAVE_UPX
  !packhdr tmpexe.tmp "UPX --best -q --compress-icons=0 tmpexe.tmp"
!endif

Есть очень хороший плагин для архивов FreeArc - распаковка arc-архивов, несколько страниц назад пролистайте и найдёте его.



Я в таких случаях использую 7-Zip архиватор,
попробуй мою сборку этого архиватора Zip 9.22 с последним SFX
или с
сайта автора SFX
.



NSIS имеет ограничение на файл размером более 2GB, и при большом размере файла инсталлятора иконка не видна, поэтому лучше прикреплять большие файлы, и что бы сильно не мудрить, можно использовать такой код:





Код:

Код: Выделить всё

Copyfiles /SILENT "$EXEDIR\Имя_файла.exe" "$INSTDIR\Имя_файла.exe" # паравозик!
  ExecWait "$INSTDIR\Имя_файла.exe" # извлечь ожидая завершения!
 Delete "$INSTDIR\Имя_файла.exe" # если более не нужен!

Здесь на форуме в разделе
InnoSetup
используют
Утилиту Precomp
, которая разбирает файл на бинарник а потом собирает его в Патч, но уже намного меньшего размера, после инсталляции производит эту операцию в обратном порядке.



--
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

sawe, Спасибо я вчера еще разобрался.. то что вы мне первый раз написали оказалось достаточным чтобы начать понимать как это работает.
Аватара пользователя
SnakeSel

Re: [архив].: NSIS - все вопросы :.

Сообщение SnakeSel »

Цитата funtykin:



оказалось достаточным чтобы начать понимать как это работает.
[архив].: NSIS - все вопросы :.




Ну тогда читай \Docs\InstallOptions\Readme.html
Ответить

Вернуться в «Автоматическая установка приложений»