Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Утилитка, которая конвертит 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 »
криво конвертирует. ключи неверно.
криво конвертирует. ключи неверно. »
Верно. Одна иногда и она может полезной быть, когда кучу стринговых ключей надо оттранслировать, а лень руками писать.
Кстати, форум проповедует принцип одна тема- одна программа. Если вываливание скриптов допустимо в данном топике оптом, то я за обеими руками!
Комсомолец
15-09-2008, 10:53
форум проповедует принцип одна тема- одна программа. Если вываливание скриптов допустимо в данном топике оптом, то я за обеими руками! »
А тема-то называется NSIS »,
значит и все, с ним связаное. верно? В том числе и скрипты. И нет причин создавать новую тему. :yes:
Верно. Одна иногда и она может полезной быть, когда кучу стринговых ключей надо оттранслировать, а лень руками писать. »
Абсолютно согласен! А заменить не проблема.
Что-ж, раз на то пошло дело, выкладываю свою коллекцию скриптов
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, спасибо за то, что указали на редактор скриптов "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
Котяра, я им только пару раз пользовался, если честно. Я щас пишу всё в Notepad++. Отличная штука. А константры из скрипта в скрипт копирую просто каждый раз и коментариии не убираю.
я им только пару раз пользовался, если честно »
Ясно. Мне эта программа понравилась - удобная.
Комсомолец
25-10-2008, 14:18
Котяра, пригодится скрипт))
hb860, секции exclude как сделать? взаимоисключения.
эээ, всмысле ? поподробней ПЛЗ
Мой новый скрипт, кстати 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
два бота закомментированы-с ними еще не разобрался просто.
Скрипт установки "Средства удаления вредоносных программ" (это такой антивирусный сканер от 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, секции 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), на некоторых файлах спрашивает, с помощью какой программы открыть. Буду рад помощи в доработке. В аттаче, т.к. сообщение слишком большое.
Комсомолец, Зачем убрал
;StrCpy $OpenCommand "$INSTDIR\KMPlayer.exe $\"%1$\""
Это нужная строка была! Раскоментируй.
Вот это бред:
DeleteRegKey HKCR "${extenstion}"
DeleteRegKey HKCR "${ClassName}"
DeleteRegKey HKLM "${ClassName}"
Комсомолец
01-11-2008, 12:32
Зачем убрал » иначе ошибка. Вот это бред » ну а как иначе ассоциации убить?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC