|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата shanishki:
|
|
------- Отправлено: 17:22, 05-05-2011 | #1151 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Мне большую помощь оказывает программа RegSnap.
Делаю снимок до инсталляции, после инсталляции (до запуска программы) и снимок после первого запуска программы и смотрю последовательность и состав изменений в реестре и файловой системе. Дальше уже проще... Еще полезна утилита RegDllView.exe, можно после устанвоки посмотреть, какие библиотеки зарегистрировались при установке программы. Конвертор Reg2NSIS оказывает большую помощь, но комманды часто коряво конвертит.... Хороший шаблон нужно себе сделать, что бы не тратить зря время, и дело пойдет. Я себе в сборке eMule так делал без упаковки: IfFileExists "$INSTDIR\config\*.ini" 0 +2 IfFileExists "$INSTDIR\config\*.dat" 0 +2 IfFileExists "$INSTDIR\config\*.met" 0 +2 IfFileExists "$INSTDIR\config\*.txt" 0 +2 IfFileExists "$INSTDIR\config\*.tmpl" 0 +2 IfFileExists "$INSTDIR\config\*.bak" 0 +2 IfFileExists "$INSTDIR\config\*.old" 0 +2 MessageBox MB_YESNO|MB_ICONQUESTION "В папке назначения обнаружены файлы настроек предыдущей установки eMule, хотите сохранить файлы ранее сделанных настроек программы? (Вы сможете найти их в папке $INSTDIR\config\BACKUP)" IDNO no_backup CreateDirectory "$INSTDIR\config\BACKUP\" CopyFiles "$INSTDIR\config\*.ini" "$INSTDIR\config\BACKUP\" CopyFiles "$INSTDIR\config\*.dat" "$INSTDIR\config\BACKUP\" CopyFiles "$INSTDIR\config\*.met" "$INSTDIR\config\BACKUP\" CopyFiles "$INSTDIR\config\*.txt" "$INSTDIR\config\BACKUP\" CopyFiles "$INSTDIR\config\*.tmpl" "$INSTDIR\config\BACKUP\" CopyFiles "$INSTDIR\config\*.bak" "$INSTDIR\config\BACKUP\" CopyFiles "$INSTDIR\config\*.old" "$INSTDIR\config\BACKUP\" |
------- Последний раз редактировалось wolkow70, 05-05-2011 в 18:53. Отправлено: 18:40, 05-05-2011 | #1152 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
|
|
------- Отправлено: 22:39, 05-05-2011 | #1153 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
В принципе, для Opera попробую сделаю как Вы написали, там трудно понять, что лишнее, а что нет. Надо разобраться какие файлы нужны, и продумать механизм восстановления настроек по выбору. Например: секция: "Восстановление закладок" секция: "Восстановление паролей" секция: "Восстановление Экспресс-панели" секция "Восстановление истории посещений" и т.д. Сам то инсталлятор Opera я сделал. Теперь наворачивать его надо. |
|
------- Последний раз редактировалось wolkow70, 06-05-2011 в 06:23. Отправлено: 06:16, 06-05-2011 | #1154 |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Хотел бы посоветоваться с Мэтрами NSIS-а!
Windows 7 и Vista имеет ряд ограничений на папку C:\Program Files. При установке некоторых программ а так же игр (не имеющий профиля), следует выбирать другую папку установки. То есть при установки в Windows 7 и Vista предлагать по умолчанию другую папку (к примеру Games\XXX), в других Windows предлагать стандартно C:\Program Files\XXX. Написал простую логику, но при выборе другой папки или диска терялась \XXX , переписал заново вроде всё работает, но я не уверен полностью. Прошу проверить! LoadLanguageFile "${NSISDIR}\Contrib\Language files\Russian.nlf" XPStyle on !include WinVer.nsh Var SysDrive Var INSTIPE Var SETUPDIR Function .onInit Pop $0 StrCpy $INSTIPE "$PROGRAMFILES" ${If} ${IsWinVista} StrCpy $SysDrive $WINDIR 2 StrCpy $INSTIPE "$SysDrive\Games" ${ElseIf} ${IsWin7} StrCpy $SysDrive $WINDIR 2 StrCpy $INSTIPE "$SysDrive\Games" ${EndIf} StrCpy $INSTDIR "$INSTIPE\XXX" StrCpy $SETUPDIR "$INSTDIR" FunctionEnd OutFile "XXX_setup.exe" InstallDir "$SETUPDIR\XXX" Page directory Section -XXX SectionEnd |
Отправлено: 22:15, 06-05-2011 | #1155 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать sawe,
Все нормально работает. В функции .onInit уберите Pop $0 - нехорошо обращаться к пустому стэку. А я бы сделал, гораздо проще: LoadLanguageFile "${NSISDIR}\Contrib\Language files\Russian.nlf" XPStyle on !include WinVer.nsh Function .onInit ${If} ${AtLeastWinVista} ;начиная от WinVista и выше Var /global SysDrive ; иницилизируем здесь, в ниже версиях Windows SysDrive - не используется StrCpy $SysDrive $WINDIR 2 StrCpy $INSTDIR "$SysDrive\Games\XXX" ${Else} StrCpy $INSTDIR "$PROGRAMFILES\XXX" ${EndIf} FunctionEnd OutFile "XXX_setup.exe" Page directory Section -XXX SectionEnd |
------- Последний раз редактировалось kotkovets, 07-05-2011 в 00:23. Отправлено: 23:57, 06-05-2011 | #1156 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
В справке тоже много не понятного. Вот сделал так: IfFileExists "$EXEDIR\pkey.txt" 0 NoThere MessageBox MB_OK "Файл лицензии есть" CopyFiles /silent "$EXEDIR\pkey.txt" "$INSTDIR\pkey.txt" Goto Done NoThere: MessageBox MB_OK "Файла лицензии нет" Done: SectionEnd Не понятно, как теперь скрыть MB если запускать с ключом /S через IfSilent... |
------- Последний раз редактировалось wolkow70, 07-05-2011 в 13:22. Отправлено: 10:11, 07-05-2011 | #1157 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
Через флаг тихого режима. Все это есть и многое другое в Справочнике по NSIS |
|
------- Последний раз редактировалось kotkovets, 07-05-2011 в 13:29. Отправлено: 11:55, 07-05-2011 | #1158 |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
Цитата:
|
||
Отправлено: 13:32, 07-05-2011 | #1159 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
Кто нибудь разъяснил бы на примере скрипта AIMP что там реализовано. Пока написал так: StrCpy $WindowCaption "${PRODUCT_NAME} ${PRODUCT_VERSION}" ${WordReplace} "$EXEFILE" ".exe" ".ini" "+" $IniFile StrCpy $IniFile "$EXEDIR\$IniFile" ;gMode detection StrCpy $gMode 0 ${GetOptions} $CMDLINE "/G" $0 ;if not found /G then exit IfErrors CheckViolation 0 ;When Silent setup then ignoring /G IfSilent +4 0 StrCpy $gMode 1 Delete $IniFile StrCpy $WindowCaption "Генератор файла ответов ${PRODUCT_NAME}" Запускается генератор и все, что дальше делать не понятно.... |
|
------- Отправлено: 13:52, 07-05-2011 | #1160 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|