PDA

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


Страниц : 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170

coderman
19-07-2006, 14:00
Если честно то некоторые здесь задолбали со своим Inno!!!
Вопрос остался открытым - скрипт для перепаковки Winamp нужен или софтина какая вытаскивающая сей скрипт из дистриба. Софта я пока такого не нашел. Есть идеи - пишите.

boss911
20-07-2006, 16:51
codermanЕсли честно то некоторые здесь задолбали со своим Inno!!!Долбают дятлы, Вы не туда попали, Вам в зоопарк! Выбирайте вырожение плиз, тут стараютса помочь, а некого-то "задолбать"!!

Lesder2
24-01-2008, 15:59
Вопрос... Возможно при автоматической установки выбирать компоненты? в NSIS...
Или как ниудь отредактировать ехе сделаный в nsis?

unikum111
28-01-2008, 03:37
Lesder2, нужна конкретная задача, какую программу, версию и т.д.

Lesder2
29-01-2008, 01:46
unikum111, Вот например Регет поменял свой инсталятор на NSIS... Теперь настройки его хранятся в ini файлах которые при запуске распаковываются... Я бы хотел как нибудь их изменить... Просто что менять я знаю... как распаковыть тоже =)... А вот как редактить... ну или хотябы запаковать после распаковки... незнаю..

Master of Magic
14-02-2008, 00:04
Lesder2, расскажи как распаковыть тоже
Чем NSIS инсталлятор можно распаковать? Желательно, что б сам скрипт тоже остался.

Собрал инсталлятор для Strong DC++ 2.11, прокомментировал и выложил скрипт сюда:
;NSIS Modern User Interface version 1.70
;Example Script
;Written by Master of Magic

;--------------------------------
;Include Modern UI
!include "MUI.nsh"
;--------------------------------
;Главная секция

;Название программы
Name "Strong DC++ v.2.11"
; Заголовок которой будет отображаться при установки программы
Caption "Strong DC++ v.2.11 DeepNet"
; Название файла который получится на выходе (после компиляции скрипта)
OutFile "SDC.exe"

;Папка установки файлов по умолчания
InstallDir "$PROGRAMFILES\StrongDC++"
;Требования к правам пользователя для установки данной программы
RequestExecutionLevel user
; Устанавливаем компрессор lzma по умолчанию
SetCompressor /FINAL lzma

;--------------------------------
;Установки интерфейса

!define MUI_ABORTWARNING ; Вы действительно хотите прекратить установку данной программы
!define MUI_ICON "C:\Documents and Settings\Администратор\Рабочий стол\HubikStrongDC\StrongDC\modern-install-colorful.ico" ; Иконка для собранного инсталлятора
!define MUI_UNICON "C:\Documents and Settings\Администратор\Рабочий стол\HubikStrongDC\StrongDC\modern-uninstall-colorful.ico" ; Иконка для деинсталлятора
!define MUI_FINISHPAGE_NOAUTOCLOSE ; Последняя страница установщика не закрывается автоматически
!define MUI_FINISHPAGE_RUN ; Запускает последнюю страницу установщика
!define MUI_FINISHPAGE_RUN_CHECKED ; Ставит флажок в положение Вкл по умолчанию
!define MUI_FINISHPAGE_RUN_TEXT "Запустить программу" ; Надпись рядом с флажком
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" ; Запускаем функцию под именем LaunchLink

;--------------------------------
;Станицы

!insertmacro MUI_PAGE_LICENSE "data\License.txt" ; Вставляем файл с лицензией
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH ; Вставляет в ваш инсталлятор страницу завершения установки (функциональность управляется в Установках интерфейса см.Выше)

!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH ; Вставляет в ваш инсталлятор страницу завершение деинсталляции (перезагрузить систему и т.д.)
;--------------------------------
;Язык

!insertmacro MUI_LANGUAGE "Russian"

;--------------------------------
;Секция установки

Section "Strong DC++" SecMainProgram

SectionIn RO

; Устанавливаем путь для копирования файлов
SetOutPath $INSTDIR

; Сюда записываем файлы

File data\changelog-dc.txt
File data\changelog-en.txt
File data\changelog.txt
File data\dcppboot.xml
File data\License.txt
File data\russian.xml
File data\StrongDC.exe
File data\unicows.dll
File data\home.url

; Поскольку папок много приходится менять путь установки

SetOutPath $INSTDIR\EmoPacks

File data\EmoPacks\Kolobok.xml

SetOutPath $INSTDIR\EmoPacks\Kolobok

File /r data\EmoPacks\Kolobok\*.* ; Копируем все файлы в этой папке, /r - означает что копируем полностью все файлы в этой папке

SetOutPath $INSTDIR\Settings

File /r data\Settings\*.*

SetOutPath $INSTDIR\Settings\Certificates

File /r data\Settings\Certificates\*.*

SetOutPath $INSTDIR\Settings\HubLists

File /r data\Settings\HubLists\*.*
SetOverwrite on
SetOutPath $INSTDIR

writeuninstaller "$INSTDIR\uninstall.exe" ; Создаем файл деинсталляции в папке Program Files\StrongDC++, при компиляции скрипта uninstall.exe создается сам

SectionEnd
;--------------------------------
; Вызов этой функции прописан в Установке интерфейса, если влажок вкл. функция запускает exe файл.
Function LaunchLink
ExecShell "" "$INSTDIR\StrongDC.exe"
FunctionEnd


;--------------------------------

; Пользователь сам выбирает, какие ярлыки ему нужны, по умолчанию все включено
Section "Ярлык в меню Пуск" MenuProgramsShortcut

CreateDirectory "$SMPROGRAMS\StrongDC++"
CreateShortCut "$SMPROGRAMS\StrongDC++\Strong DC++ DeepNet.lnk" "$INSTDIR\StrongDC.exe" "" "$INSTDIR\StrongDC.exe" 0
CreateShortCut "$SMPROGRAMS\StrongDC++\Наш сайт.lnk" "$INSTDIR\home.url" ""
CreateShortCut "$SMPROGRAMS\StrongDC++\Удаление.lnk" "$INSTDIR\uninstall.exe" ""

SectionEnd
;--------------------------------

Section "Ярлык на рабочем столе" SecDesctopShortcut

CreateShortCut "$DESKTOP\Strong DC++ DeepNet.lnk" "$INSTDIR\StrongDC.exe" "" "$INSTDIR\StrongDC.exe" 0

SectionEnd
;--------------------------------
;
Section "Ярлык в панели быстрого запуска" SecQlaunchShortcut

CreateShortCut "$QUICKLAUNCH\Strong DC++ DeepNet.lnk" "$INSTDIR\StrongDC.exe" "" "$INSTDIR\StrongDC.exe" 0

SectionEnd
;--------------------------------
;
Section "Добавить программу в автозапуск" SecArlaunchShortcut

CreateShortCut "$SMSTARTUP\Strong DC++ DeepNet.lnk" "$INSTDIR\StrongDC.exe" "" "$INSTDIR\StrongDC.exe" 0
SectionEnd
;--------------------------------
; Деинсталляция
; Функция подтверждающая желание пользователя удалить приложение
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
Abort
FunctionEnd

Section "Uninstall"

SetOutPath $INSTDIR

KillProcDLL::KillProc "StrongDC.exe" ; Перед тем как удалить программу необходимо завршить пработу программы, непосредственно NSIS не имеет средств для этого придется качать Plug-In отсюда (http://nsis.sourceforge.net/mediawiki/images/5/53/KillProcDll%26FindProcDll.zip)
Sleep 700 ; Делаем паузу потому, что программа убивается не сразу

; Удаляем ярлыки RmDir /r - удаляем директорию со всем её содержимым
RmDir /r "$SMPROGRAMS\StrongDC++"
Delete "$QUICKLAUNCH\Strong DC++ DeepNet.lnk"
Delete "$SMSTARTUP\Strong DC++ DeepNet.lnk"
Delete "$DESKTOP\Strong DC++ DeepNet.lnk"
Delete "$SMPROGRAMS\StrongDC++\Uninstall.lnk"
; Удаление программы

Delete "changelog-dc.txt"
Delete "changelog-en.txt"
Delete "changelog.txt"
Delete "dcppboot.xml"
Delete "License.txt"
Delete "russian.xml"
Delete "StrongDC.exe"
Delete "unicows.dll"
Delete "home.url"
RmDir /r "$INSTDIR\Settings"
RmDir /r "$INSTDIR\EmoPacks"
RmDir /r "$INSTDIR\Logs"

Delete "Uninstall.exe" ; удаляем сам файл деинсталяции
RmDir /rebootok "$INSTDIR" ; Директория удаляется только после перезагрузки компьютера, без перезагрузки удалить папку не получилось, толи глюк инсталлятора, то ли у меня руки кривые

SetAutoClose true ; Автозакрытие окна после завершения деинсталляции

SectionEnd

;--------------------------------
;Descriptions

;Language strings
;LangString DESC_SecDummy ${LANG_ENGLISH} "Ярлык на рабочем столе"

;Здесь находится описание ярлыков
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecMainProgram} "Программа для общения и обмена файлами в сети"
!insertmacro MUI_DESCRIPTION_TEXT ${MenuProgramsShortcut} "Создать ярлык в меню Пуск"
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesctopShortcut} "Создать ярлык на рабочем столе"
!insertmacro MUI_DESCRIPTION_TEXT ${SecQlaunchShortcut} "Создать ярлык в панели быстрого запуска"
!insertmacro MUI_DESCRIPTION_TEXT ${SecArlaunchShortcut} "Добавить программу в автозапуск"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------

Lesder2
16-02-2008, 00:12
Master of Magic
7zip\м расспаковывается =))))
Но скрипта нету =(

Master of Magic
16-02-2008, 01:50
7zip и плагином в тотал командаре, это я и сам знаю, скриптик нужен...
Кстати, что 7zip, что плагин в Total-е только частично поддерживают распаковку NSIS

simplix
17-02-2008, 19:30
Master of Magic, Следующий код:

File data\changelog-dc.txt
File data\changelog-en.txt
File data\changelog.txt
File data\dcppboot.xml
File data\License.txt
File data\russian.xml
File data\StrongDC.exe
File data\unicows.dll
File data\home.url

; Поскольку папок много приходится менять путь установки

SetOutPath $INSTDIR\EmoPacks

File data\EmoPacks\Kolobok.xml

SetOutPath $INSTDIR\EmoPacks\Kolobok

File /r data\EmoPacks\Kolobok\*.* ; Копируем все файлы в этой папке, /r - означает что копируем полностью все файлы в этой папке

SetOutPath $INSTDIR\Settings

File /r data\Settings\*.*

SetOutPath $INSTDIR\Settings\Certificates

File /r data\Settings\Certificates\*.*

SetOutPath $INSTDIR\Settings\HubLists

File /r data\Settings\HubLists\*.*


Можно заменить так:


File /r "data\*.*"

Master of Magic
17-02-2008, 21:28
В принципе монжо и так :)

hb860
21-02-2008, 12:26
HM NIS EDIT: A Free NSIS Editor/IDE
Неплохой инструмент в помощь "начинающему писателю" скриптов NSIS
На сайте программы есть также конвертер инносетапа в нсис(если оно надо кому-то, в чём лично я сомневаюсь)
Русский язык включен.
Сайт программы (http://hmne.sourceforge.net/)

simplix
21-02-2008, 15:25
hb860, Тогда уж лучше EclipseNSIS (http://nsis.sourceforge.net/EclipseNSIS_-_NSIS_plugin_for_Eclipse).

unikum111
21-02-2008, 20:39
Никто так и не ответил на вопрос: возможно ли вытащить скрипт из инсталлятора? Я склоняюсь к отрицательному ответу...

simplix
21-02-2008, 22:08
unikum111, Нельзя. Можно только скомпилированный скрипт вытащить и прочитать буквально крупицы исходника - например текстовую информацию, но восстановить первоначальный исходник невозможно.

unikum111
22-02-2008, 12:03
simplix, я так и понял, восстановить можно только по снимкам системы (файловой системы + реестра).

hb860
22-02-2008, 13:08
unikum111, Именно, можно накатать собственно ручно скрипт, который будет делать тоже самое. Надо просто знать что делает оригинал(всего-то :-))

SamLab
22-02-2008, 15:27
Можно ли как в командой строке запретить запуск приложения и посещение сайта программы (например при установке последней врсии ReGet Personal)?

hb860
27-02-2008, 17:40
Если я правильно понял вопрос, то многоуважаемый (мной, по крайней мере) SamLab имеет ввиду, нет ли у NSIS какого-либо ключа, способного подавить указанные в посте действия. Изначально - нет, но в NSIS существует возможность расширять коммандные ключи исталятора,например, setup.exe /S /Bla /bla2=1.
Эти расширения задаются в процессе написания скрипта, и если создатель инсталлятора ReGet Personal заложил такую возможность, то теоретически она есть, но лично мне она не известна.

hb860
04-03-2008, 09:31
(для обновления значков после смены ассоциаций) »
А можно делать так:
${RefreshShellIcons}
Эффект будет тоже
After changing file associations, you can call this function to refresh the shell immediately.

ZaV
05-03-2008, 16:45
Можно ли как в командой строке запретить запуск приложения и посещение сайта программы (например при установке последней врсии ReGet Personal)? »

Насчет ключей ничего найти не смог, а конкретно для ReGet Personal помогает следующее .
Перед собственно запуском инсталлятора копируем в

c:\Program Files\ReGet Software\ReGet Deluxe\

файл defaultlang.dll

после чего запускаем установки и окно IE не открывается.




© OSzone.net 2001-2012