Показать полную графическую версию : Скрипт NSIS для перепаковки Mail.ru Agent
Представляю свой скрипт для установки программы Mail.ru Agent 5.x с возможностью деинсталяции и тихой установки программы. Полученный дистрибутив будет отличаться от оригинала тем, что:
-ставится с ключом /S без участия пользователя
-не меняет домашней страницы браузера
-не меняет провайдера поиска
-не ставит панель "спутник"
Код скрипта:
!define PRODUCT_NAME "Mail.ru Агент"
!define PRODUCT_VERSION "5.6.3402"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define Branding "By Happy Bulldozer860"
!define pkgdir "d:\package"
; MUI 1.67 compatible ------
!include "MUI.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!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_COMPONENTS
!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}.exe"
InstallDir "$PROGRAMFILES\Mail.ru\Agent"
BrandingText "${Branding}"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"
InstType "un.Полное удаление ${PRODUCT_NAME}"
Section "${PRODUCT_NAME}" SEC01
SectionIn 1 2 RO
SetAutoClose true
SetOutPath "$INSTDIR"
File /r "${pkgdir}\agent\*.*"
RegDLL "$INSTDIR\Mra\dll\mramenu.dll"
RegDLL "$INSTDIR\Mra\dll\mratag.dll"
;WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "set_mrasearch" 0
WriteRegStr HKCU "Software\Mail.Ru\Agent" "lang" "ru"
;;WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 286261249
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SendSystemStatistics" 0
;;;;
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "ForAllUsers" 1
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "SendSystemStatistics" 0
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "version" 3270
WriteRegStr HKLM "Software\Mail.Ru\Agent" "InstallPath" "$OUTDIR"
CreateDirectory "$APPDATA\Mra\Update"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Mail.ru"
CreateShortCut "$SMPROGRAMS\Mail.ru\${PRODUCT_NAME}.lnk" "$OUTDIR\magent.exe"
WriteUninstaller "$OUTDIR\uninst.exe"
CreateShortCut "$SMPROGRAMS\Mail.ru\Удалить ${PRODUCT_NAME}.lnk" "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
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 /o "Ярлык на рабочем столе"
SectionIn 1
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\magent.exe"
SectionEnd
Section Uninstall secidx01
SectionIn 1 RO
DeleteRegKey HKLM "Software\Mail.Ru\Agent"
UnRegDLL "$INSTDIR\Mra\dll\mramenu.dll"
UnRegDLL "$INSTDIR\Mra\dll\mratag.dll"
UnRegDLL "$INSTDIR\Mra\dll\newmrasearch.dll"
Delete /REBOOTOK "$INSTDIR\Mra\dll\mramenu.dll"
RMDir /r "$INSTDIR"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\Mail.ru"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
Section "Un.Удалить папку данных"
SectionIn 1
SetShellVarContext current
RMDir /r "$APPDATA\Mra\"
SectionEnd
Section "Un.Удалить настройки реестра"
SectionIn 1
SetShellVarContext current
DeleteRegKey HKCU "Software\Mail.Ru\Agent"
SectionEnd
Function un.onInit
SectionSetText ${secidx01} "Удалить приложение"
FunctionEnd
Скрины:http://pic.ipicture.ru/uploads/081007/23111/6YUZkdq4C4.jpg (http://ipicture.ru/)
http://pic.ipicture.ru/uploads/081007/23111/9Xg5MW0KDo.jpg (http://ipicture.ru/)
Порядок действий:
Создайте папку c:\agent.Вы можете использовать любую другую папку, . Не забудьте при этом исправить путь в строчке !define pkgdir c: в начале скрипта. Скрипт ищет файлы агента по принципу ${pkgdir}+"\agent"
Поместите в неё в файлы из установленного агента(как правило, из c:\Program Files\Mail.Ru\Agent\), кроме magentsetup.exe, его заменяет деинсталятор
Копилим, получаем Mail.ru Агент-<версия>.exe
Тихо ставим так: "Mail.ru Агент-<версия>.exe" /S, установится без ярлыка на рабочем столе.
Проверялось: Windows XP sp3 x86, Windows 7 RTM x86. Теоретически работает во всех NT6.x при запуске инсталлятора с повышенными привилегиями.
Загрузить готовую сборку 5.6.3402 (http://www.winreview.ru/download.php?view.15)
Версия 5.3
; Script generated by the HM NIS Edit Script Wizard.
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Mail.ru Агент"
!define PRODUCT_VERSION " 5.3.2552.0"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define Branding "By Happy Bulldozer860"
; MUI 1.67 compatible ------
!include "MUI.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!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_COMPONENTS
!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}.exe"
InstallDir "$PROGRAMFILES\Mail.ru\Agent"
BrandingText "${Branding}"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"
InstType "un.Полное удаление ${PRODUCT_NAME}"
Section "${PRODUCT_NAME}" SEC01
SectionIn 1 2 RO
SetAutoClose true
SetOutPath "$INSTDIR"
File /r "d:\agent\*.*"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "set_mrasearch" 0
WriteRegStr HKCU "Software\Mail.Ru\Agent" "lang" "ru"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 17825793
;;;;
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "ForAllUsers" 1
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "version" 2552
WriteRegStr HKLM "Software\Mail.Ru\Agent" "InstallPath" "$OUTDIR"
CreateDirectory "$APPDATA\Mra\Update"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Mail.ru"
CreateShortCut "$SMPROGRAMS\Mail.ru\${PRODUCT_NAME}.lnk" "$OUTDIR\magent.exe"
WriteUninstaller "$OUTDIR\uninst.exe"
CreateShortCut "$SMPROGRAMS\Mail.ru\Удалить ${PRODUCT_NAME}.lnk" "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
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 /o "Ярлык на рабочем столе"
SectionIn 1
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\magent.exe"
SectionEnd
Section Uninstall secidx01
SectionIn 1 RO
DeleteRegKey HKLM "Software\Mail.Ru\Agent"
RMDir /r "$INSTDIR"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\Mail.ru"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
Section "Un.Удалить папку данных"
SectionIn 1
SetShellVarContext current
RMDir /r "$APPDATA\Mra\"
SectionEnd
Section "Un.Удалить настройки реестра"
SectionIn 1
SetShellVarContext current
DeleteRegKey HKCU "Software\Mail.Ru\Agent"
SectionEnd
Function un.onInit
SectionSetText ${secidx01} "Удалить приложение"
FunctionEnd
Скачать сборку:
http://hb860.ifolder.ru/9933736
http://depositfiles.com/files/ievbsmh56
Тихо ставим так: "Mail.ru Агент-5.хххххх.exe" /S, установится без ярлыка на рабочем столе. »
Совместимо с Windows 7 (6.1.7000) :)
Версия 5.4
; Script generated by the HM NIS Edit Script Wizard.
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Mail.ru Агент"
!define PRODUCT_VERSION " 5.4.2606"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define Branding "By Happy Bulldozer860"
; MUI 1.67 compatible ------
!include "MUI.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!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_COMPONENTS
!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}.exe"
InstallDir "$PROGRAMFILES\Mail.ru\Agent"
BrandingText "${Branding}"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"
InstType "un.Полное удаление ${PRODUCT_NAME}"
Section "${PRODUCT_NAME}" SEC01
SectionIn 1 2 RO
SetAutoClose true
SetOutPath "$INSTDIR"
File /r "d:\agent\*.*"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "set_mrasearch" 0
WriteRegStr HKCU "Software\Mail.Ru\Agent" "lang" "ru"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 286261249
;;;;
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "ForAllUsers" 1
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "version" 2606
WriteRegStr HKLM "Software\Mail.Ru\Agent" "InstallPath" "$OUTDIR"
CreateDirectory "$APPDATA\Mra\Update"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Mail.ru"
CreateShortCut "$SMPROGRAMS\Mail.ru\${PRODUCT_NAME}.lnk" "$OUTDIR\magent.exe"
WriteUninstaller "$OUTDIR\uninst.exe"
CreateShortCut "$SMPROGRAMS\Mail.ru\Удалить ${PRODUCT_NAME}.lnk" "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
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 /o "Ярлык на рабочем столе"
SectionIn 1
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\magent.exe"
SectionEnd
Section Uninstall secidx01
SectionIn 1 RO
DeleteRegKey HKLM "Software\Mail.Ru\Agent"
RMDir /r "$INSTDIR"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\Mail.ru"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
Section "Un.Удалить папку данных"
SectionIn 1
SetShellVarContext current
RMDir /r "$APPDATA\Mra\"
SectionEnd
Section "Un.Удалить настройки реестра"
SectionIn 1
SetShellVarContext current
DeleteRegKey HKCU "Software\Mail.Ru\Agent"
SectionEnd
Function un.onInit
SectionSetText ${secidx01} "Удалить приложение"
FunctionEnd
Тихо ставим так: "Mail.ru Агент-5.хххххх.exe" /S, установится без ярлыка на рабочем столе. »
Скачать сборку:
http://files.mail.ru/C2DU4G
Файлы будут храниться до 9 марта 2009 года, каждое скачивание файлов продлевает их срок хранения еще на 5 дней.
Habetdin
09-06-2009, 13:35
Ждём скрипт для MRA v5.5.xxxx :)
Версия 5.5
; Script generated by the HM NIS Edit Script Wizard.
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Mail.ru Агент"
!define PRODUCT_VERSION "5.5.2746"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define Branding "By Happy Bulldozer860"
; MUI 1.67 compatible ------
!include "MUI.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!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_COMPONENTS
!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}.exe"
InstallDir "$PROGRAMFILES\Mail.ru\Agent"
BrandingText "${Branding}"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"
InstType "un.Полное удаление ${PRODUCT_NAME}"
Section "${PRODUCT_NAME}" SEC01
SectionIn 1 2 RO
SetAutoClose true
SetOutPath "$INSTDIR"
File /r "d:\agent\*.*"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "set_mrasearch" 0
WriteRegStr HKCU "Software\Mail.Ru\Agent" "lang" "ru"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 286261248
;;;;
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "ForAllUsers" 1
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "version" 2746
WriteRegStr HKLM "Software\Mail.Ru\Agent" "InstallPath" "$OUTDIR"
CreateDirectory "$APPDATA\Mra\Update"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Mail.ru"
CreateShortCut "$SMPROGRAMS\Mail.ru\${PRODUCT_NAME}.lnk" "$OUTDIR\magent.exe"
WriteUninstaller "$OUTDIR\uninst.exe"
CreateShortCut "$SMPROGRAMS\Mail.ru\Удалить ${PRODUCT_NAME}.lnk" "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
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 /o "Ярлык на рабочем столе"
SectionIn 1
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\magent.exe"
SectionEnd
Section Uninstall secidx01
SectionIn 1 RO
DeleteRegKey HKLM "Software\Mail.Ru\Agent"
RMDir /r "$INSTDIR"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\Mail.ru"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
Section "Un.Удалить папку данных"
SectionIn 1
SetShellVarContext current
RMDir /r "$APPDATA\Mra\"
SectionEnd
Section "Un.Удалить настройки реестра"
SectionIn 1
SetShellVarContext current
DeleteRegKey HKCU "Software\Mail.Ru\Agent"
SectionEnd
Function un.onInit
SectionSetText ${secidx01} "Удалить приложение"
FunctionEnd
Всегда пожалуйста
Сборка без дури тут:
http://files.mail.ru/QQSOLK
Файлы будут храниться до 14 июня 2009 года, каждое скачивание файлов продлевает их срок хранения еще на 5 дней.
Тыкайте меня периодически на предмет моих скриптов/сборок. Времени щас нет, не за всем успеваю следить, но на форум хожу
Habetdin
10-06-2009, 00:13
hb860, меняется только !define PRODUCT_VERSION "5.5.2746" »
?
P.S.: Строка:
File /r "d:\agent\*.*" »
не сходится с этим:
Создайте папку c:\agent »
:)
и может в заголовке темы написать не для v5.2, а для v5.xx?
Вот это ещё меняется:
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 286261248
......
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "version" 2746 »
У меня на каком то этапе на диске С: место кончилось, я папку сменил, а тут не отписался. Щас напишу что-нибудь умное в шапке
Habetdin
10-06-2009, 17:45
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 286261248 »
Как получить "286261248"? Это в каком формате?=)
Habetdin, это в десятичной системе счисления. Ну отображаться оно будет в реестре именно как DWORD
Habetdin
30-06-2009, 15:13
Ну отображаться оно будет в реестре именно как DWORD »
Вы не поняли меня, как мне получить это значение, что оно означает? :dont-know
Habetdin, сам не знаю. Беру после установки его из реестра.
5.5.2842
; Script generated by the HM NIS Edit Script Wizard.
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Mail.ru Агент"
!define PRODUCT_VERSION "5.5.2842"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define Branding "By Happy Bulldozer860"
; MUI 1.67 compatible ------
!include "MUI.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!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_COMPONENTS
!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}.exe"
InstallDir "$PROGRAMFILES\Mail.ru\Agent"
BrandingText "${Branding}"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"
InstType "un.Полное удаление ${PRODUCT_NAME}"
Section "${PRODUCT_NAME}" SEC01
SectionIn 1 2 RO
SetAutoClose true
SetOutPath "$INSTDIR"
File /r "d:\agent\*.*"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "set_mrasearch" 0
WriteRegStr HKCU "Software\Mail.Ru\Agent" "lang" "ru"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 286261249
;;;;
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "ForAllUsers" 1
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "version" 2842
WriteRegStr HKLM "Software\Mail.Ru\Agent" "InstallPath" "$OUTDIR"
CreateDirectory "$APPDATA\Mra\Update"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Mail.ru"
CreateShortCut "$SMPROGRAMS\Mail.ru\${PRODUCT_NAME}.lnk" "$OUTDIR\magent.exe"
WriteUninstaller "$OUTDIR\uninst.exe"
CreateShortCut "$SMPROGRAMS\Mail.ru\Удалить ${PRODUCT_NAME}.lnk" "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
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 /o "Ярлык на рабочем столе"
SectionIn 1
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\magent.exe"
SectionEnd
Section Uninstall secidx01
SectionIn 1 RO
DeleteRegKey HKLM "Software\Mail.Ru\Agent"
RMDir /r "$INSTDIR"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\Mail.ru"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
Section "Un.Удалить папку данных"
SectionIn 1
SetShellVarContext current
RMDir /r "$APPDATA\Mra\"
SectionEnd
Section "Un.Удалить настройки реестра"
SectionIn 1
SetShellVarContext current
DeleteRegKey HKCU "Software\Mail.Ru\Agent"
SectionEnd
Function un.onInit
SectionSetText ${secidx01} "Удалить приложение"
FunctionEnd
Проверил на 6.1.7600 RTM
Есть сборка вот с такими пожеланиями: hb860, можно сделать с ярлыком в панели быстрого запуска и чтоб он устанавливался в пуск - все программы - без папки и без деинсталляции, так считаю будет красивее(одним ярлыком) »
http://forum.oszone.net/post-1217150-22.html
Автор сборки Habetdin, ему и говорим за неё спасибо.
hb860, можно сделать с ярлыком в панели быстрого запуска и чтоб он устанавливался в пуск - все программы - без папки и без деинсталляции, так считаю будет красивее(одним ярлыком)
Habetdin
10-09-2009, 01:12
Bond01, ; Script generated by the HM NIS Edit Script Wizard.
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Mail.ru Агент"
!define PRODUCT_VERSION "5.5.2842"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define Branding "By Happy Bulldozer860"
; MUI 1.67 compatible ------
!include "MUI.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!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_COMPONENTS
!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}.exe"
InstallDir "$PROGRAMFILES\Mail.ru\Agent"
BrandingText "${Branding}"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"
InstType "un.Полное удаление ${PRODUCT_NAME}"
Section "${PRODUCT_NAME}" SEC01
SectionIn 1 2 RO
SetAutoClose true
SetOutPath "$INSTDIR"
File /r "d:\agent\*.*"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "set_mrasearch" 0
WriteRegStr HKCU "Software\Mail.Ru\Agent" "lang" "ru"
WriteRegDWORD HKCU "Software\Mail.Ru\Agent" "SavedInstSettings" 286261249
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "ForAllUsers" 1
WriteRegDWORD HKLM "Software\Mail.Ru\Agent" "version" 2842
WriteRegStr HKLM "Software\Mail.Ru\Agent" "InstallPath" "$OUTDIR"
CreateDirectory "$APPDATA\Mra\Update"
SetShellVarContext all
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}.lnk" "$OUTDIR\magent.exe"
WriteUninstaller "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
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 "Ярлык на рабочем столе и в панели быстрого запуска"
SectionIn 1
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\magent.exe"
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\magent.exe"
SectionEnd
Section Uninstall secidx01
SectionIn 1 RO
DeleteRegKey HKLM "Software\Mail.Ru\Agent"
RMDir /r "$INSTDIR"
SetShellVarContext all
Delete "$SMPROGRAMS\${PRODUCT_NAME}.lnk"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
Section "Un.Удалить папку данных"
SectionIn 1
SetShellVarContext current
RMDir /r "$APPDATA\Mra\"
SectionEnd
Section "Un.Удалить настройки реестра"
SectionIn 1
SetShellVarContext current
DeleteRegKey HKCU "Software\Mail.Ru\Agent"
SectionEnd
Function un.onInit
SectionSetText ${secidx01} "Удалить приложение"
FunctionEnd
Допишу в скрипт,выложу с конфигуратором, как в k-lite(ну или как в аимпе я реализовал). Каждый сможет настроить под себя. Кстати, с выбором папки в меню пуск - идею неплохая.
Habetdin, не получается, в пуске просто папка, при запуске см. скрин.
Можно сделать еще принудительно ярлык без выбора, чтоб устанавливался, или при тихой установке он всеравно будет?
Bond01, чтобы был ярлык по умолчанию, убрать /o тут Section /o "Ярлык на рабочем столе и в панели быстрого запуска"
будет так
Section "Ярлык на рабочем столе и в панели быстрого запуска"
В скрипте Habetdin ошибка, надо чтоб было CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}.lnk" "$OUTDIR\magent.exe" Сотри лишнюю кавычку тут ${PRODUCT_NAME}.lnk""
Пасибо, вот копаюсь, все :) сейчас буду пробовать.
ошибку выдает - !include "MUI.nsh" :jump:
Версия инсталятора ?
Вообще этот муи поддерживается с 1.67 и выше, я последней пользуюсь, но я уверяю, с 2.03 нормально компилилось, я лично проверял.
Нет, что-то не получается у меня:cry: , буду ждать Вашу версию, может учтете мои пожелания.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.