Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Комсомолец

Ветеран


Автор проектов


Сообщения: 1558
Благодарности: 228

Профиль | Сайт | Отправить PM | Цитировать


вот еще скрипт DC++ (более продвинутый)
читать дальше »
Код: Выделить весь код
;константы (название программы, версия, ключ для деинсталляции, брендинг)
!define PRODUCT_NAME "FlyLinkDC++"
!define PRODUCT_VERSION "3.64"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "Created by Комсомолец 2008"

;вставляем графический фейс инсталлятора и функции
; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"

;компрессия (это непрерывный архив, максимальное сжатие)
SetCompressor /SOLID lzma

;стандартные страницы приветствия, выбора директории, иконки и т.д.
; MUI Settings
!define MUI_ABORTWARNING
;путь к иконкам инсталлятора и к иконке для унинсталла (тут мои)
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\flylihk.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue-full.ico"
;а тут стандартные иконки из пакета NSIS
;!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorfull.ico"
;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC 
; Welcome page
!insertmacro MUI_PAGE_WELCOME

;если плагин URL не установлен-комментим ниже
;----------------------
; My URL
!define MUI_CUSTOMFUNCTION_GUIINIT onGUIInit
;---------------------
;заканчиваем комменты

; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS 
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"


;ребрендинг
BrandingText "${BRANDING}"

;название продукта и версия
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"

;имя выходного файла
OutFile "${PRODUCT_NAME}_${PRODUCT_VERSION}_PowerPack.exe"

;дефолтная директория установки
InstallDir "$PROGRAMFILES\FlyLinkDC"

;показывать все детали во время установки
ShowInstDetails show

;показывать все детали во время удаления
ShowUnInstDetails show

;если плагин URL не установлен-комментим ниже
;-----------------
## Dummy section.
Section
SectionEnd

## Set the hyperlink up.
Function onGUIInit
 BrandingURL::Set /NOUNLOAD "0" "200" "0" "http://www.site.ru"
FunctionEnd
;-----------------------
;заканчиваем комменты

;варианты установки
InstType "Полная"
InstType "Минимальная"
;=========================================================================================================================
;основная секция
Section "!${PRODUCT_NAME}" idx0
;галка стоит в обоих вариантах установки и указываем, что устанавливаем в указанную директорию
  SectionIn 1 2 RO
  SetOutPath "$INSTDIR"
;путь откуда копируем все файлы и папки 
 File /r "C:\FlyLinkDC\fly\*.*"
;=========================================================================================================================
;создаем файл unins000.exe и записи в реестре для удаления
	WriteUninstaller "$OUTDIR\unins000.exe"
	WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
	WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\FlylinkDC.exe"
	WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\unins000.exe"
	WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

;=========================================================================================================================
SectionGroup /e "Ярлыки"
;тут думаю понятно
Section "Ярлыки в меню Пуск"
	SectionIn 1 2 
	SetShellVarContext all
	CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
	CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\FlylinkDC.exe"
	CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\ReadMe.lnk" "$INSTDIR\Readme.rtf"
	CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\home.lnk" "$INSTDIR\Home.url"
	CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\unins000.exe"
SectionEnd

;=========================================================================================================================
;тут есть заморочка-  IfSilent +3   -не устанавливать при тихой установке

Section "Ярлыки в панели быстрого запуска"
	SectionIn 1 
                IfSilent +3
	SetShellVarContext all
	CreateShortCut  "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\FlylinkDC.exe"
SectionEnd

Section "Добавить ярлык в автозапуск"
	SectionIn 1 2 
                IfSilent +3
	SetShellVarContext all
                CreateShortCut "$SMSTARTUP\${PRODUCT_NAME}.lnk" "$INSTDIR\FlylinkDC.exe"
SectionEnd

Section "Ярлыки на рабочем столе"
	SectionIn 1 
                IfSilent +3
	SetShellVarContext all
	CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\FlylinkDC.exe"
	CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\home.lnk" "$INSTDIR\Home.url"
SectionEnd
SectionGroupEnd

;=========================================================================================================================

SectionGroup /e "Боты"
	
	Section "Cool Bot"
		SectionIn 1
                IfSilent +3
		SetOutPath "$INSTDIR\"
		File "C:\FlyLinkDC\Cool Bot\*.*"
	SectionEnd

	Section "Auto Slot"
		SectionIn 1
                IfSilent +3
		SetOutPath "$INSTDIR\"
		File "C:\FlyLinkDC\Auto Slot\*.*"
	SectionEnd

;	Section "Bot Repeater"
;		SectionIn 1
;                IfSilent +3
;		SetOutPath "$INSTDIR\"
;		File "C:\FlyLinkDC\Bot Repeater\*.*"
;	SectionEnd

;	Section "Test API"
;		SectionIn 1
;                IfSilent +3
;		SetOutPath "$INSTDIR\"
;		File "C:\FlyLinkDC\Test API\*.*"
;	SectionEnd

SectionGroupEnd	

;=========================================================================================================================
SectionGroup /e "Настройки"

     SectionGroup /e "settings provider"

	Section "Избранные хабы"
		SectionIn 1
		SetOutPath "$INSTDIR\Settings\"
		File "C:\FlyLinkDC\Settings\Favorites.xml"
	SectionEnd

	Section "Версия программы"
		SectionIn 1
		SetOutPath "$INSTDIR\Settings\"
		File "C:\FlyLinkDC\Settings\Queue.xml"
	SectionEnd

       SectionGroupEnd
SectionGroupEnd	

;=========================================================================================================================
;тут диалог о завершении удаления
Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

;тут диалог подтверждения удаления
Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
  Abort
FunctionEnd

;если плагин URL не установлен-комментим ниже
;-----------------------------------------------------
## Unload the plugin.
Function .onGUIEnd
 BrandingURL::Unload
FunctionEnd
;-------------------------------------------------------
;заканчиваем комменты


;тут прописываем что удалять и закрыть окно удаления
Section Uninstall
  RMDir /r "$INSTDIR\"
  SetShellVarContext all
  RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
  Delete "$DESKTOP\home.lnk"
  Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
  Delete "$SMSTARTUP\${PRODUCT_NAME}.LNK"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd

два бота закомментированы-с ними еще не разобрался просто.

-------
Для того, чтобы узнать, что такое рекурсия - необходимо узнать, что такое рекурсия. :)

http://forum.oszone.net/image.php?type=sigpic&userid=69953&dateline=1440353086


Отправлено: 17:47, 25-10-2008 | #74