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

hb860
07-07-2008, 10:55
Утилитка, которая конвертит reg-файл в команды NSIS (http://nsis.sourceforge.net/Reg2Nsis_-_convert_registry_info_into_NSIS_commands)

Комсомолец
13-09-2008, 09:07
Скрипты с комментариями. Всё проверено. Раз для автоустановки форум-то без вопросов всё ставится с ключом /S.




;константы (название программы, версия, ключ для деинсталляции, брендинг)
!define PRODUCT_NAME "FlyLinkDC++"
!define PRODUCT_VERSION "3.52"
!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
; 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

;варианты установки
InstType "Полная"
InstType "Сокращенная"

;основная секция
Section "!${PRODUCT_NAME}" idx0
;галка стоит в обоих вариантах установки и указываем, что устанавливаем в указанную директорию
SectionIn 1 2 RO
SetOutPath "$INSTDIR"

;путь откуда копируем все файлы и папки
File /r "C:\FlyLinkDC\*.*"

;создаем файл 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

;тут думаю понятно
Section "Ярлыки в меню Пуск" idx1
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}\Комтек.lnk" "$INSTDIR\Home.url"
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\FlylinkDC.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\unins000.exe"
SectionEnd


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

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

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

;тут диалог о завершении удаления
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

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



!define PRODUCT_NAME "Total Commander"
!define PRODUCT_VERSION "7.03"
!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\tcmd.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; 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\Total Commander"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"

Section "!${PRODUCT_NAME}" idx0
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File /r "C:\Total\*.*"

WriteUninstaller "$OUTDIR\Uninstall.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\totalcmd.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\Uninstall.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section "Ярлыки в меню Пуск" idx1
SectionIn 1 2
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\totalcmd.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\Uninstall.exe"
SectionEnd

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

Section "Ярлык на рабочем столе" idx3
SectionIn 1
IfSilent +3
SetShellVarContext all
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\totalcmd.exe"
SectionEnd


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

Section Uninstall
RMDir /r "$INSTDIR\"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd



!define PRODUCT_NAME "QIP 2005"
!define PRODUCT_VERSION "v.8070"
!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\qip.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\unqip.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; 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\QIP"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"

Section "!${PRODUCT_NAME}" idx0
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File /r "C:\QIP\*.*"

WriteUninstaller "$OUTDIR\UnQIP.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\QIP.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\UnQIP.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section "Ярлыки в меню Пуск" idx1
SectionIn 1 2
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\QIP.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\UnQIP.exe"
SectionEnd

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

Section "Ярлык на рабочем столе" idx3
SectionIn 1
IfSilent +3
SetShellVarContext all
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\QIP.exe"
SectionEnd


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

Section Uninstall
RMDir /r "$INSTDIR\"
RMDir /r "$INSTDIR\LI\"
RMDir /r "$INSTDIR\Plugins\"
RMDir /r "$INSTDIR\Skins\"
RMDir /r "$INSTDIR\Sounds\"
RMDir /r "$INSTDIR\Users\"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd



!define PRODUCT_NAME "AIMP2"
!define PRODUCT_VERSION "2.50.293"
!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\aimp.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; 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"

!insertmacro GetOptions

BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}_${PRODUCT_VERSION}_PowerPack.exe"
InstallDir "$PROGRAMFILES\AIMP2"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"

Var SkinFile
Var IconFile
Var Flag
Section "!${PRODUCT_NAME}" idx0
SectionIn 1 2 3 RO
SetOutPath "$INSTDIR\"
File /r "C:\AIMP25\*.*"
IfFileExists "$OUTDIR\Data\AIMP.INI" skip_cfg
StrCpy $Flag "1"
CreateDirectory "$OUTDIR\Data\AllUsers"
WriteINIStr "$OUTDIR\Data\AIMP.INI" System UserMode 0
WriteINIStr "$OUTDIR\Data\AllUsers\AIMP2.INI" System LangFile russian.lng ;язык по умолчанию для плеера
WriteINIStr "$OUTDIR\Data\AllUsers\AIMP2r.INI" System LangFile russian.lng ;язык по умолчанию для рекордера
WriteINIStr "$OUTDIR\Data\AllUsers\AIMP2c.INI" System LangFile russian.lng ;язык по умолчанию для конвертера
WriteINIStr "$OUTDIR\Data\AllUsers\AIMP2t.INI" System LangFile russian.lng ;язык по умолчанию для таггера

${GetOptions} $CMDLINE "/SKIN=" $SkinFile
StrCmp $SkinFile "" +2
WriteINIStr "$OUTDIR\Data\AllUsers\AIMP2.INI" Skins DefaultSkin $SkinFile ;скин
skip_cfg:
WriteUninstaller "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

Section "Скины" idx1
SectionIn 1 2 3
SetOutPath "$INSTDIR\Skins"
File "C:\AIMP25\Skins\*.*"
SectionEnd

Section "Иконки типов файлов" idx2
SectionIn 1 2 3
SetOutPath "$INSTDIR\Icons"
File "C:\AIMP25\icons\*.*"
StrCmp $Flag "1" +2
IfFileExists "$INSTDIR\Data\AIMP.INI" skip_cfg
${GetOptions} $CMDLINE "/ICONS=" $IconFile
StrCmp $IconFile "" skip_cfg
IfFileExists "$INSTDIR\Icons\$IconFile" 0 skip_cfg
Rename "$INSTDIR\Icons\aimp2.dll" "$INSTDIR\Icons\aimp2_original.dll"
Rename "$INSTDIR\Icons\$IconFile" "$INSTDIR\Icons\aimp2.dll"
skip_cfg:
SectionEnd

Section "Ярлыки в меню Пуск" idx3
SectionIn 1 2 3
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
SectionEnd

Section "Ярлык на рабочем столе" idx4
SectionIn 1
; IfSilent +3
SetShellVarContext all
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
SectionEnd

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

Section "Ассоциации файлов" idx6
SectionIn 1 2 3
ExecWait '$INSTDIR\aimp2.exe /REG=R'
RegDLL "$INSTDIR\System\aimp_shell.dll"
SectionEnd

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

Section Uninstall
UnRegDLL "$INSTDIR\System\aimp_shell.dll"
ExecWait '$INSTDIR\aimp2.exe /REG=U'
RMDir /r "$INSTDIR\"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd



!define PRODUCT_NAME "Winamp"
!define PRODUCT_VERSION "5.32"
!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\modern-install-colorful.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
!define MUI_COMPONENTSPAGE_NODESC
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
; Language files
!insertmacro MUI_LANGUAGE "Russian"

; MUI end ------
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
UninstallCaption "Удаление ${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}_rus.exe"
InstallDir "$PROGRAMFILES\Winamp"
ShowInstDetails show
ShowUnInstDetails show
BrandingText "${BRANDING}"
InstType "Полная"
InstType "Сокращенная"

Section "!${PRODUCT_NAME}" idx0
;галка стоит в обоих вариантах установки и указываем, что устанавливаем в указанную директорию
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File /r "C:\Winamp\*.*"
SetShellVarContext all
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr HKLM "SOFTWARE\Nullsoft\Winamp" "regname" "Ваше имя"
WriteRegStr HKLM "SOFTWARE\Nullsoft\Winamp" "regkey" "Ваш регистрационный номер"
WriteRegStr HKCR "Directory\shell\Winamp.Enqueue" "" "Добавить в Winamp"
WriteRegStr HKCR "Directory\shell\Winamp.Play" "" "Открыть в Winamp"
WriteRegStr HKCR "Winamp.File\shell\Enqueue" "" "Добавить в Winamp"
WriteRegStr HKCR "Winamp.File\shell\Play" "" "Открыть в Winamp"
WriteRegStr HKCR "Winamp.Playlist\shell\Enqueue" "" "Добавить в Winamp"
WriteRegStr HKCR "Winamp.Playlist\shell\Play" "" "Открыть в Winamp"
WriteRegStr HKLM "SOFTWARE\Classes\Directory\shell\Winamp.Enqueue" "" "Добавить в Winamp"
WriteRegStr HKLM "SOFTWARE\Classes\Directory\shell\Winamp.Play" "" "Открыть в Winamp"
WriteRegStr HKLM "SOFTWARE\Classes\Winamp.File\shell\Enqueue" "" "Добавить в Winamp"
WriteRegStr HKLM "SOFTWARE\Classes\Winamp.File\shell\Play" "" "Открыть в Winamp"
WriteRegStr HKLM "SOFTWARE\Classes\Winamp.Playlist\shell\Enqueue" "" "Добавить в Winamp"
WriteRegStr HKLM "SOFTWARE\Classes\Winamp.Playlist\shell\Play" "" "Открыть в Winamp"
ExecWait '$INSTDIR\winamp.exe /REG=LCAD'
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$INSTDIR\winamp.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "${PRODUCT_VERSION}"
SectionEnd

Section "Ярлыки в меню Пуск" idx1
SectionIn 1 2
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\winamp.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
SectionEnd

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

Section "Ярлык на рабочем столе" idx3
SectionIn 1
IfSilent +3
SetShellVarContext all
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\winamp.exe"
SectionEnd

Section Uninstall
ExecWait '$INSTDIR\winamp.exe /UNREG'
RMDir /r "$INSTDIR"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
DeleteRegKey HKLM "SOFTWARE\Nullsoft\Winamp"
DeleteRegKey HKCR "Directory\shell\Winamp.Enqueue"
DeleteRegKey HKCR "Directory\shell\Winamp.Play"
DeleteRegKey HKCR "Winamp.File\shell\Enqueue"
DeleteRegKey HKCR "Winamp.File\shell\Play"
DeleteRegKey HKCR "Winamp.Playlist\shell\Enqueue"
DeleteRegKey HKCR "Winamp.Playlist\shell\Play"
DeleteRegKey HKLM "SOFTWARE\Classes\Directory\shell\Winamp.Enqueue"
DeleteRegKey HKLM "SOFTWARE\Classes\Directory\shell\Winamp.Play"
DeleteRegKey HKLM "SOFTWARE\Classes\Winamp.File\shell\Enqueue"
DeleteRegKey HKLM "SOFTWARE\Classes\Winamp.File\shell\Play"
DeleteRegKey HKLM "SOFTWARE\Classes\Winamp.Playlist\shell\Enqueue"
DeleteRegKey HKLM "SOFTWARE\Classes\Winamp.Playlist\shell\Play"
Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd

Скоро еще выложу...

Комсомолец
15-09-2008, 06:06
Утилитка, которая конвертит reg-файл в команды NSIS »
криво конвертирует. ключи неверно.

hb860
15-09-2008, 10:41
криво конвертирует. ключи неверно. »
Верно. Одна иногда и она может полезной быть, когда кучу стринговых ключей надо оттранслировать, а лень руками писать.

Кстати, форум проповедует принцип одна тема- одна программа. Если вываливание скриптов допустимо в данном топике оптом, то я за обеими руками!

Комсомолец
15-09-2008, 10:53
форум проповедует принцип одна тема- одна программа. Если вываливание скриптов допустимо в данном топике оптом, то я за обеими руками! »
А тема-то называется NSIS »,
значит и все, с ним связаное. верно? В том числе и скрипты. И нет причин создавать новую тему. :yes:

Верно. Одна иногда и она может полезной быть, когда кучу стринговых ключей надо оттранслировать, а лень руками писать. »
Абсолютно согласен! А заменить не проблема.

hb860
24-09-2008, 20:33
Что-ж, раз на то пошло дело, выкладываю свою коллекцию скриптов

Artweaver.nsi - оно и есть
delphi.nsi - делфи 5
edialer.nsi - оно и есть
far.nsi - оно и есть
foxitpdf.nsi - foxit pdf reader
foxpro8.nsi - MS Visual FoxPro 8
Games.nsi - коллекция игрушек
icofx.nsi - Ico FX
opera.nsi - Опера на основе MSI
photoshop.nsi - 7ой фотошоп
ps.nsi - пунто свитчер
qip.nsi - оно и есть
radmin.nsi - радмин сервер версии 2.х
starter.nsi - codestuff starter
taskinfo.nsi - Iarsn Taskino 6.x+
tc.nsi - Total commander
thebat.nsi - The Bat!
themes.nsi - Сборник тем для XP
unlocker.nsi - непосредственно программа :)
uuds.nsi - Usefull Utilities Disk Studio
winamp.nsi - Винамп :)
windjvu.nsi - WinDJView 0.5
winrar.nsi - оно и есть
wirechanger.nsi - WiredPLane WireChanger - его бесплатная версия
xnview.nsi - скрипт с ассоциациями файлов


Сразу скажу: многие программы, обозначенные здесь и не требуют установки вовсе, я их исталю потому что мне так удобнее.
И ещё, некторые скрипты содержат ошибки, строго не пинать, нахожу - исправляю. Они не критичные.
Текст в инсталере фара содержит не мою функцию StrLoc, однако в коментах ничего нет, взято с вики нсиса, иметь ввиду первоисточник при копировании.
Другие мои скрипты, не представленные здесь, можно найти в соответсвующих программам топиках.

Если есть вопросы - пишите.

Комсомолец
24-10-2008, 08:17
hb860, скрипты продолжаем выкладывать? ;)

hb860
24-10-2008, 10:35
пока ничё стоящего :)

Котяра
24-10-2008, 14:16
hb860, спасибо за то, что указали на редактор скриптов "HM NIS Edit 2.0.3" (я имею ввиду текст комментария в коде скрипта :) )
Вот я выложу скрипт для установки XPTweaker-а:


; Script generated by the HM NIS Edit Script Wizard.

; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "XPTweaker"
!define PRODUCT_VERSION "1.5.3 build 78"
!define PRODUCT_PUBLISHER "www.xptweaker.net"
!define PRODUCT_WEB_SITE "http://www.xptweaker.net"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\XPTweaker.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"

; MUI 1.67 compatible ------
!include "MUI.nsh"

; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

; Welcome page
!insertmacro MUI_PAGE_WELCOME
; License page
!insertmacro MUI_PAGE_LICENSE "C:\Program Files\XPTweaker\License.txt"
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Start menu page
var ICONS_GROUP
!define MUI_STARTMENUPAGE_NODISABLE
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "XPTweaker"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}"
!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!define MUI_FINISHPAGE_RUN "$INSTDIR\XPTweaker.exe"
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Readme.txt"
!insertmacro MUI_PAGE_FINISH

; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES

; Language files
!insertmacro MUI_LANGUAGE "Russian"

; MUI end ------

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "C:\Documents and Settings\All Users\Documents\XPTweakerSetup.exe"
InstallDir "$PROGRAMFILES\XPTweaker"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
ShowInstDetails show
ShowUnInstDetails show

Section "MainSection" SEC01
SetOutPath "$INSTDIR"
SetOverwrite try
File "C:\Program Files\XPTweaker\belarussian.lng"
File "C:\Program Files\XPTweaker\english.lng"
File "C:\Program Files\XPTweaker\History.txt"
File "C:\Program Files\XPTweaker\License.txt"
File "C:\Program Files\XPTweaker\Readme.txt"
File "C:\Program Files\XPTweaker\ukrainian.lng"
File "C:\Program Files\XPTweaker\XPTweaker.chm"
File "C:\Program Files\XPTweaker\XPTweaker.dll"
File "C:\Program Files\XPTweaker\XPTweaker.exe"
File "C:\Program Files\XPTweaker\XPTweaker.log"

; Shortcuts
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Help.lnk" "$INSTDIR\XPTweaker.chm"
CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\XPTweaker.lnk" "$INSTDIR\XPTweaker.exe"
CreateShortCut "$DESKTOP\XPTweaker.lnk" "$INSTDIR\XPTweaker.exe"
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd

Section -AdditionalIcons
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\uninst.exe"
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd

Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\XPTweaker.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\XPTweaker.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd


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

Section Uninstall
!insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
Delete "$INSTDIR\${PRODUCT_NAME}.url"
Delete "$INSTDIR\uninst.exe"
Delete "$INSTDIR\XPTweaker.log"
Delete "$INSTDIR\XPTweaker.exe"
Delete "$INSTDIR\XPTweaker.dll"
Delete "$INSTDIR\XPTweaker.chm"
Delete "$INSTDIR\ukrainian.lng"
Delete "$INSTDIR\Readme.txt"
Delete "$INSTDIR\License.txt"
Delete "$INSTDIR\History.txt"
Delete "$INSTDIR\english.lng"
Delete "$INSTDIR\belarussian.lng"

Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\Website.lnk"
Delete "$DESKTOP\XPTweaker.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\XPTweaker.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\Help.lnk"

RMDir "$SMPROGRAMS\$ICONS_GROUP"
RMDir "$INSTDIR"

DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd

hb860
24-10-2008, 15:31
Котяра, я им только пару раз пользовался, если честно. Я щас пишу всё в Notepad++. Отличная штука. А константры из скрипта в скрипт копирую просто каждый раз и коментариии не убираю.

Котяра
24-10-2008, 19:30
я им только пару раз пользовался, если честно »
Ясно. Мне эта программа понравилась - удобная.

Комсомолец
25-10-2008, 14:18
Котяра, пригодится скрипт))
hb860, секции exclude как сделать? взаимоисключения.

hb860
25-10-2008, 16:11
эээ, всмысле ? поподробней ПЛЗ

Мой новый скрипт, кстати http://forum.oszone.net/thread-120962.html
Хороший пример работы с XML файлами

Комсомолец
25-10-2008, 17:47
вот еще скрипт 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

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

Котяра
25-10-2008, 17:54
Скрипт установки "Средства удаления вредоносных программ" (это такой антивирусный сканер от Microsoft):


; Script generated by the HM NIS Edit Script Wizard.

; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Средство удаления вредоносных программ"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "Microsoft"
!define PRODUCT_WEB_SITE "http://www.microsoft.com/"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\MRT.exe"

; MUI 1.67 compatible ------
!include "MUI.nsh"

; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"

; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!define MUI_FINISHPAGE_RUN "$SYSDIR\MRT.exe"
!insertmacro MUI_PAGE_FINISH

; Language files
!insertmacro MUI_LANGUAGE "Russian"

; MUI end ------

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "C:\Documents and Settings\All Users\Documents\MRTSetup.exe"
InstallDir "$SYSDIR"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
ShowInstDetails show

Section "MainSection" SEC01
SetOutPath "$SYSDIR"
SetOverwrite ifnewer
File "C:\windows\system32\MRT.exe"
CreateDirectory "$SMPROGRAMS\Средство удаления вредоносных программ"
CreateShortCut "$SMPROGRAMS\Средство удаления вредоносных программ\Средство удаления вредоносных программ.lnk" "$SYSDIR\MRT.exe"
CreateShortCut "$DESKTOP\Средство удаления вредоносных программ.lnk" "$SYSDIR\MRT.exe"
SectionEnd

Section -Post
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$SYSDIR\MRT.exe"
SectionEnd


Деинсталлятор отключен, устанавливается файл "mrt.exe" в папку "system32".

hb860
25-10-2008, 18:46
hb860, секции exclude как сделать? взаимоисключения. »
Чё имеется ввиду ? Таких секций не бывает! Тебе что нужно то ? Чтоб когда одну галку ставишь другая снималась ? Тогда смотри c:\Program Files\NSIS\Examples\one-section.nsi - там офигительный пример как это сделать!

P.S. Котяра, тебе говоришь тоже полезно это узнать ? Смотри там же :) c:\Program Files\NSIS\Examples\one-section.nsi

Комсомолец
25-10-2008, 19:28
Таких секций не бывает! »
это и есть радиобуттон. почитал. буду курить.

Комсомолец
31-10-2008, 02:21
Скрипт для упаковки KM Player. Не идеален, но работает. Проблемы: при открытии файла не начинает воспроизведение (необходимо нажать Play), на некоторых файлах спрашивает, с помощью какой программы открыть. Буду рад помощи в доработке. В аттаче, т.к. сообщение слишком большое.

hb860
01-11-2008, 11:20
Комсомолец, Зачем убрал
;StrCpy $OpenCommand "$INSTDIR\KMPlayer.exe $\"%1$\""
Это нужная строка была! Раскоментируй.

Вот это бред:

DeleteRegKey HKCR "${extenstion}"
DeleteRegKey HKCR "${ClassName}"
DeleteRegKey HKLM "${ClassName}"

Комсомолец
01-11-2008, 12:32
Зачем убрал » иначе ошибка. Вот это бред » ну а как иначе ассоциации убить?




© OSzone.net 2001-2012