[архив].: NSIS - все вопросы :.
-
wolkow70
Re: [архив].: NSIS - все вопросы :.
Добрый день.
У меня возникло пара вопросов, ответьте пожалуйста:
1) Как предотвратить повторный запуск инсталлятора? (без плагинов и прочего)
2) Как сделать, чтоб файлы после инсталляции, были с атрибутами скрытый и системный?
ps в другом инсталляторе ставил атрибуты, а потом собирал инсталлятор и атрибуты сохранялись. а в этом так не получается.
3) Как можно добиться максимального сжатия? может есть какой то плагин позволяющий очень сильно сжимать?
Или можно как то сжимать файлы несколько раз?
ps winrar сильнее сжимает.
pss в nsis'e ставлю максимальное... но всё равно не сильно жмет
Спасибо!
У меня возникло пара вопросов, ответьте пожалуйста:
1) Как предотвратить повторный запуск инсталлятора? (без плагинов и прочего)
2) Как сделать, чтоб файлы после инсталляции, были с атрибутами скрытый и системный?
ps в другом инсталляторе ставил атрибуты, а потом собирал инсталлятор и атрибуты сохранялись. а в этом так не получается.
3) Как можно добиться максимального сжатия? может есть какой то плагин позволяющий очень сильно сжимать?
Или можно как то сжимать файлы несколько раз?
ps winrar сильнее сжимает.
pss в nsis'e ставлю максимальное... но всё равно не сильно жмет
Спасибо!
-
punsh
Re: [архив].: NSIS - все вопросы :.
WriteRegStr HKLM "SOFTWARE\BurnAware\Install" "InstallEntry" "?"
как прописать выше этой строчки, чтобы заместь "?" было полное имя компьютера из HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
как прописать выше этой строчки, чтобы заместь "?" было полное имя компьютера из HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
punsh
Сначала читаем значение параметра, к примеру AltDefaultDomainName и сохраняем в $R1
Код:
а затем
Код:
Сначала читаем значение параметра, к примеру AltDefaultDomainName и сохраняем в $R1
Код:
Код: Выделить всё
ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" "AltDefaultDomainName"а затем
тыц
Код:
Код: Выделить всё
WriteRegStr HKLM "SOFTWARE\BurnAware\Install" "InstallEntry" "$R1"-
CyberMaster
Re: [архив].: NSIS - все вопросы :.
Подскажите, как лучше всего делать инсталлятор для игр? Тупо запаковать все в один .exe не вариант, так как такой exe файл, весом в 4 гига например, запускается долго, и требует больших усилий от компьютера.
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата 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
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата funtykin:
а как тут выцарапать путь указанного файла?
Объясни подробно, что и как вам нужно и для какой цели, очень часто бывает, что решение намного проще чем вы его себе представляете в начале!
а как тут выцарапать путь указанного файла?
[архив].: NSIS - все вопросы :.
Объясни подробно, что и как вам нужно и для какой цели, очень часто бывает, что решение намного проще чем вы его себе представляете в начале!
-
SnakeSel
Re: [архив].: NSIS - все вопросы :.
Цитата Tankan:
По этому вопросу что скажите? Как установить атрибуты на файлы, чтоб извлекались и билы скрытие и системные.
Код:
Пример применения:
Код:
Цитата Tankan:
3. А при чем тут распаковка? если мне нужна упаковка с сильным скажитем.
Штатными средствами NSIS можно увеличить сжатие
Код:
Можно так же положи в папку со скриптом файл upx.exe[/i] и вставь этот код
Код:
Есть очень хороший плагин для архивов FreeArc - распаковка arc-архивов, несколько страниц назад пролистайте и найдёте его.
Я в таких случаях использую 7-Zip архиватор,
NSIS имеет ограничение на файл размером более 2GB, и при большом размере файла инсталлятора иконка не видна, поэтому лучше прикреплять большие файлы, и что бы сильно не мудрить, можно использовать такой код:
Код:
Здесь на форуме в разделе
--
По этому вопросу что скажите? Как установить атрибуты на файлы, чтоб извлекались и билы скрытие и системные.
[архив].: 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 - все вопросы :.
sawe, Спасибо я вчера еще разобрался.. то что вы мне первый раз написали оказалось достаточным чтобы начать понимать как это работает.
-
SnakeSel
Re: [архив].: NSIS - все вопросы :.
Цитата funtykin:
оказалось достаточным чтобы начать понимать как это работает.
Ну тогда читай \Docs\InstallOptions\Readme.html
оказалось достаточным чтобы начать понимать как это работает.
[архив].: NSIS - все вопросы :.
Ну тогда читай \Docs\InstallOptions\Readme.html