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

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

Аватара для wolkow70

Ветеран


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

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




Заинтересовался темой автоматической установки The Bat! по умолчанию, и своими скромными стараниями написал несложный скрипт для сборки инсталлятора на NSIS.

Код: Выделить весь код
!define MUI_WELCOMEFINISHPAGE_BITMAP "D:\NSIS\The Bat.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "D:\NSIS\The Bat.bmp"
!define PRODUCT_NAME "The Bat!"
!define PRODUCT_VERSION "5.0.24"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define pkgdir "D:\NSIS"
!define HelpLink "http://www.ritlabs.com/ru/support"
!define URLInfoAbout "http://www.ritlabs.com"
!define URLUpdateInfo "http://www.ritlabs.com/ru/products/thebat/download.php"
!define Comments "Один из лучших почтовых клиентов"
!define Publisher "Ritlabs"
!define PRODUCT_WEB_SITE "http://www.ritlabs.com"
;
; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "DelRegKey.nsh"
;
!insertmacro RefreshShellIcons
;
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "D:\NSIS\TheBat.ico"
!define MUI_UNICON "D:\NSIS\modern-uninstall-blue-full.ico"
!define BRANDING "wolkow70"
!define MUI_COMPONENTSPAGE_SMALLDESC
;
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
;
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;
!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\${PRODUCT_NAME}"
BrandingText "${BRANDING}"
;
Section "!${PRODUCT_NAME} (основные файлы)" Install
SectionIn RO 
SetOutPath "$INSTDIR"  
File "${pkgdir}\TheBat\bat_czh.tip"
File "${pkgdir}\TheBat\bat_dut.tip"
File "${pkgdir}\TheBat\bat_esp.tip"
File "${pkgdir}\TheBat\bat_fra.tip"
File "${pkgdir}\TheBat\bat_ger.tip"
File "${pkgdir}\TheBat\bat_pol.tip"
File "${pkgdir}\TheBat\bat_rom.tip"
File "${pkgdir}\TheBat\bat_rus.chm"
File "${pkgdir}\TheBat\bat_rus.tip"
File "${pkgdir}\TheBat\bat_sky.tip"
File "${pkgdir}\TheBat\bat_srb.tip"
File "${pkgdir}\TheBat\bat_src.tip"
File "${pkgdir}\TheBat\bat_swe.tip"
File "${pkgdir}\TheBat\bat_ukr.tip"
File "${pkgdir}\TheBat\hunspell.dll"
File "${pkgdir}\TheBat\licence.txt"
File "${pkgdir}\TheBat\licence_rus.rtf"
File "${pkgdir}\TheBat\readme.txt"
File "${pkgdir}\TheBat\SSCE5532.dll"
File "${pkgdir}\TheBat\TBMapi.dll"
File "${pkgdir}\TheBat\The_bat.chm"
File "${pkgdir}\TheBat\thebat.exe"
File "${pkgdir}\TheBat\thebat.lng"
File "${pkgdir}\TheBat\thebat.tip"
File "${pkgdir}\TheBat\thebatURL.ico"
;
File /r "${pkgdir}\TheBat\Dictionaries"
File /r "${pkgdir}\TheBat\Images"
File /r "${pkgdir}\TheBat\ServersInfo"
File /r "${pkgdir}\TheBat\Speller"
;
WriteUninstaller "$INSTDIR\uninst.exe"
;
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME} ${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\thebat.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "${HelpLink}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${URLInfoAbout}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${URLUpdateInfo}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Readme" "$INSTDIR\Readme.txt"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Comments" "${Comments}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${Publisher}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Contact" "http://www.ritlabs.com/"
;
WriteRegStr HKLM "SOFTWARE\Classes\TBVars" "URL Protocol" ""
WriteRegDWORD HKLM "SOFTWARE\Classes\TBVars" "EditFlags" 0x2
WriteRegStr HKLM "SOFTWARE\Classes\TBVars\DefaultIcon" "" "$INSTDIR\thebat.exe,0"
WriteRegStr HKLM "SOFTWARE\Classes\TBVars\shell" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\TBVars\shell\open" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\TBVars\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" %1"
;
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! mailto" "" "Internet MailTo protocol"
WriteRegBin HKLM "SOFTWARE\Classes\The Bat! mailto" "EditFlags" 00000000
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! mailto\DefaultIcon" "" "$INSTDIR\thebat.exe,0"
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! mailto\shell" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! mailto\shell\open" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! mailto\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /open:$\"%1$\""
;
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! message file" "" "Internet Mail Message File"
WriteRegBin HKLM "SOFTWARE\Classes\The Bat! message file" "EditFlags" 00000000
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! message file\DefaultIcon" "" "$INSTDIR\thebat.exe,7"
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! message file\shell" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! message file\shell\open" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! message file\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /open:$\"%1$\""
;
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! vCard file" "" "vCard File"
WriteRegBin HKLM "SOFTWARE\Classes\The Bat! vCard file" "EditFlags" 00000000
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! vCard file\DefaultIcon" "" "$INSTDIR\thebat.exe,1"
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! vCard file\shell" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! vCard file\shell\open" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\The Bat! vCard file\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /open:$\"%1$\""
;
WriteRegStr HKCU "Software\Classes\TBVars" "URL Protocol" ""
WriteRegDWORD HKCU "Software\Classes\TBVars" "EditFlags" 0x2
WriteRegStr HKCU "Software\Classes\TBVars\DefaultIcon" "" "$INSTDIR\thebat.exe,0"
WriteRegStr HKCU "Software\Classes\TBVars\shell" "" ""
WriteRegStr HKCU "Software\Classes\TBVars\shell\open" "" ""
WriteRegStr HKCU "Software\Classes\TBVars\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" %1"
;
WriteRegStr HKCU "Software\Classes\The Bat! mailto" "" "Internet MailTo protocol"
WriteRegBin HKCU "Software\Classes\The Bat! mailto" "EditFlags" 00000000
WriteRegStr HKCU "Software\Classes\The Bat! mailto\DefaultIcon" "" "$INSTDIR\thebat.exe,0"
WriteRegStr HKCU "Software\Classes\The Bat! mailto\shell" "" ""
WriteRegStr HKCU "Software\Classes\The Bat! mailto\shell\open" "" ""
WriteRegStr HKCU "Software\Classes\The Bat! mailto\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /open:$\"%1$\""
;
WriteRegStr HKCU "Software\Classes\The Bat! message file" "" "Internet Mail Message File"
WriteRegBin HKCU "Software\Classes\The Bat! message file" "EditFlags" 00000000
WriteRegStr HKCU "Software\Classes\The Bat! message file\DefaultIcon" "" "$INSTDIR\thebat.exe,7"
WriteRegStr HKCU "Software\Classes\The Bat! message file\shell" "" ""
WriteRegStr HKCU "Software\Classes\The Bat! message file\shell\open" "" ""
WriteRegStr HKCU "Software\Classes\The Bat! message file\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /open:$\"%1$\""
;
WriteRegStr HKCU "Software\Classes\The Bat! vCard file" "" "vCard File"
WriteRegBin HKCU "Software\Classes\The Bat! vCard file" "EditFlags" 00000000
WriteRegStr HKCU "Software\Classes\The Bat! vCard file\DefaultIcon" "" "$INSTDIR\thebat.exe,1"
WriteRegStr HKCU "Software\Classes\The Bat! vCard file\shell" "" ""
WriteRegStr HKCU "Software\Classes\The Bat! vCard file\shell\open" "" ""
WriteRegStr HKCU "Software\Classes\The Bat! vCard file\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /open:$\"%1$\""
;
WriteRegStr HKLM "SOFTWARE\RegisteredApplications" "The Bat!" "SOFTWARE\Clients\Mail\The Bat!\Capabilities"
;
WriteRegStr HKLM "SOFTWARE\Classes\Applications\thebat.exe" "FriendlyAppName" "The Bat! E-Mail"
;
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!" "DLLPath" "$INSTDIR\TBMapi.dll"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!" "" "The Bat!"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Capabilities" "ApplicationDescription" "The Bat! is the e-mail system that provides easy and efficient ways to control e-mail flows of any intense"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Capabilities\FileAssociations" ".eml" "The Bat! message file"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Capabilities\FileAssociations" ".msg" "The Bat! message file"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Capabilities\FileAssociations" ".vcf" "The Bat! vCard file"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Capabilities\StartMenu" "Mail" "The Bat!"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Capabilities\UrlAssociations" "mailto" "The Bat! mailto"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\DefaultIcon" "" "$\"$INSTDIR\thebat.exe$\",0"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols" "" ""
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols\mailto" "URL Protocol" ""
WriteRegBin HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols\mailto" "EditFlags" 02000000
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols\mailto" "" "URL:MailTo Protocol"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols\mailto\DefaultIcon" "" "$\"$INSTDIR\thebat.exe$\",0"
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols\mailto\shell" "" ""
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols\mailto\shell\open" "" ""
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\Protocols\mailto\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" $\"%1$\""
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\shell" "" ""
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\shell\open" "" ""
WriteRegStr HKLM "SOFTWARE\Clients\Mail\The Bat!\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /recycle"
;
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls" "$INSTDIR\thebat.exe" 0x1
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls" "$INSTDIR\licence_rus.rtf" 0x1
;
WriteRegStr HKCU "Software\Microsoft\Windows\ShellNoRoam\MUICache" "$INSTDIR\thebat.exe" "The Bat! E-Mail Client by Ritlabs"
;
IfFileExists "$EXEDIR\Batkey.reg" 0 NoThere
IfSilent +2
MessageBox MB_OK "Регистрационный файл с данными Вашей лицензии обнаружен, его данные будут экспортированы в реестр, программа будет установлена в Pro Edition версии!"
execwait '$windir\regedit.exe /s "$EXEDIR\Batkey.reg"'
Goto Done
NoThere:
IfSilent +2
MessageBox MB_OK "Регистрационный файл с данными Вашей лицензии не обнаружен, программа будет установлена с ограничениями, установленными для демонстрационной версии!"
Done:
SectionEnd
;
!macro CreateInternetShortcut FILENAME URL ICONFILE ICONINDEX
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "${ICONINDEX}"
!macroend
;
SectionGroup "Создать ярлыки программы The Bat!" Shortcuts
Section "Создать группу ярлыков в меню Пуск" StartMenu
SetOutPath "$INSTDIR"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME} E-Mail"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME} E-Mail\${PRODUCT_NAME} E-Mail Client.lnk" "$INSTDIR\thebat.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME} E-Mail\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
;
!insertmacro CreateInternetShortcut \
  "$SMPROGRAMS\${PRODUCT_NAME} E-Mail\Веб-сайт Ritlabs" \
  "${PRODUCT_WEB_SITE}" \ 
  "$INSTDIR\thebatURL.ico" "0"
SectionEnd
;
Section "Разместить ярлык на Рабочем столе" Desktop
SetOutPath "$INSTDIR"
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\thebat.exe"
SectionEnd
;
Section "Добавить ярлык в панель Быстрого запуска" QuickLaunch
SetOutPath "$INSTDIR"
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\thebat.exe"
SectionEnd
SectionGroupEnd
;
SectionGroup /e "Установка The Bat! почтовым клиентом по умолчанию" Mail
Section "Установить The Bat! почтовым клиентом по умолчанию" Defolt
SetOutPath "$INSTDIR"
WriteRegStr HKLM "SOFTWARE\Clients\Mail" "" "The Bat!"
WriteRegStr HKCU "Software\Clients\Mail" "" "The Bat!"
SectionEnd
;
Section "Ассоциировать The Bat! с файлами EML" EML
WriteRegStr HKLM "SOFTWARE\Classes\.eml" "" "The Bat! message file"
WriteRegStr HKLM "SOFTWARE\Classes\.eml" "Content Type" "message/rfc822"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml" "Progid"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml" "Application" 
WriteRegBin HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml\OpenWithProgids" "The Bat! message file" ""
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml\UserChoice" "Progid" "The Bat! message file"
SectionEnd
;
Section "Ассоциировать The Bat! с файлами MSG" MSG
WriteRegStr HKLM "SOFTWARE\Classes\.msg" "" "The Bat! message file"
WriteRegStr HKLM "SOFTWARE\Classes\.msg" "Content Type" "message/rfc822"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg" "Progid"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg" "Application" 
WriteRegBin HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg\OpenWithProgids" "The Bat! message file" "" 
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg\UserChoice" "Progid" "The Bat! message file"
SectionEnd
;
Section "Ассоциировать The Bat! с файлами VCF" VCF
WriteRegStr HKLM "SOFTWARE\Classes\.vcf" "" "The Bat! vCard file"
WriteRegStr HKLM "SOFTWARE\Classes\.vcf" "Content Type" "text/x-vcard"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf" "Progid"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf" "Application" 
WriteRegBin HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf\OpenWithProgids" "The Bat! vCard file" ""
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf\UserChoice" "Progid" "The Bat! vCard file"
SectionEnd
;
Section "Ассоциировать с URL протоколом MailTo" MailTo
SetOutPath "$INSTDIR"
WriteRegStr HKLM "SOFTWARE\Classes\mailto" "" "URL:MailTo protocol"
WriteRegDWORD HKLM "SOFTWARE\Classes\mailto" "EditFlags" 0x2
WriteRegStr HKLM "SOFTWARE\Classes\mailto" "URL Protocol" ""
WriteRegStr HKLM "SOFTWARE\Classes\mailto\DefaultIcon" "" "$\"$INSTDIR\thebat.exe$\",7"
WriteRegStr HKLM "SOFTWARE\Classes\mailto\shell" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\mailto\shell\open" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\mailto\shell\open\command" "" "$\"$INSTDIR\thebat.exe$\" /nologo /o:$\"%1$\""
;
SectionEnd
SectionGroupEnd
;
Section "-Post" PostInstall
${RefreshShellIcons}
SectionEnd 
;
Function un.onInit
SectionSetText ${Uninstall} "Удалить программу The Bat!"
FunctionEnd
;
Section Uninstall Uninstall
SectionIn 1 RO  
;
SetShellVarContext all 
;
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME} E-Mail"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"
;
SetShellVarContext current
;
Delete "$SMPROGRAMS\${PRODUCT_NAME}.lnk"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
;
SetOutPath "$SENDTO"
Delete /REBOOTOK "$SENDTO\${PRODUCT_NAME}.lnk"
;
ReadRegStr $0 HKLM "SOFTWARE\Classes\.eml" ""
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegValue HKLM "SOFTWARE\Classes\.eml" ""
;
ReadRegStr $0 HKLM "SOFTWARE\Classes\.msg" ""
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegValue HKLM "SOFTWARE\Classes\.msg" ""
;
ReadRegStr $0 HKLM "SOFTWARE\Classes\.vcf" ""
StrCmp $0 "The Bat! vCard file" 0 +2
DeleteRegValue HKLM "SOFTWARE\Classes\.vcf" ""
;
ReadRegStr $0 HKCU "Software\Classes\.eml" ""
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegValue HKCU "Software\Classes\.eml" ""
;
ReadRegStr $0 HKCU "Software\Classes\.msg" ""
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegValue HKCU "Software\Classes\.msg" ""
;
ReadRegStr $0 HKCU "Software\Classes\.vcf" ""
StrCmp $0 "The Bat! vCard file" 0 +2
DeleteRegValue HKCU "Software\Classes\.vcf" ""
;
DeleteRegKey HKLM "SOFTWARE\Classes\TBVars" ""
DeleteRegKey HKLM "SOFTWARE\Classes\The Bat! mailto" "" 
DeleteRegKey HKLM "SOFTWARE\Classes\The Bat! message file" "" 
DeleteRegKey HKLM "SOFTWARE\Classes\The Bat! vCard file" ""
;
DeleteRegKey HKCU "Software\Classes\TBVars" ""
DeleteRegKey HKCU "Software\Classes\The Bat! mailto" "" 
DeleteRegKey HKCU "Software\Classes\The Bat! message file" "" 
DeleteRegKey HKCU "Software\Classes\The Bat! vCard file" ""
;
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml\OpenWithProgids" "The Bat! message file" 
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg\OpenWithProgids" "The Bat! message file" 
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf\OpenWithProgids" "The Bat! vCard file"
;
${DelRegValue} HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml\OpenWithList" "thebat.exe"
${DelRegValue} HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg\OpenWithList" "thebat.exe"
${DelRegValue} HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf\OpenWithList" "thebat.exe"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml" "Progid"
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml" "Progid"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg" "Progid"
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg" "Progid"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf" "Progid"
StrCmp $0 "The Bat! vCard file" 0 +2
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf" "Progid"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml" "Application"
StrCmp $0 "thebat.exe" 0 +2
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml" "Application"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg" "Application"
StrCmp $0 "thebat.exe" 0 +2
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg" "Application"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf" "Application"
StrCmp $0 "thebat.exe" 0 +2
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf" "Application"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml\UserChoice" "Progid"
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eml\UserChoice"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg\UserChoice" "Progid"
StrCmp $0 "The Bat! message file" 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.msg\UserChoice"
;
ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf\UserChoice" "Progid"
StrCmp $0 "The Bat! vCard file" 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcf\UserChoice"
;
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\The Bat!"  
;
ReadRegStr $0 HKCU "Software\Clients\Mail" ""
StrCmp $0 "The Bat!" 0 +2
DeleteRegValue HKCU "Software\Clients\Mail" ""
;
ReadRegStr $0 HKLM "SOFTWARE\Clients\Mail" ""
StrCmp $0 "The Bat!" 0 +2
DeleteRegValue HKLM "SOFTWARE\Clients\Mail" ""
;
DeleteRegKey HKLM "SOFTWARE\Clients\Mail\The Bat!" ""
;
DeleteRegValue HKLM "SOFTWARE\Classes\mailto\DefaultIcon" "" 
DeleteRegValue HKLM "SOFTWARE\Classes\mailto\shell\open\command" ""
;
WriteRegStr HKLM "SOFTWARE\Classes\mailto\DefaultIcon" "" ""
WriteRegStr HKLM "SOFTWARE\Classes\mailto\shell\open\command" "" "" 
;
DeleteRegValue HKLM "SOFTWARE\RegisteredApplications" "The Bat!" 
;
DeleteRegKey HKLM "SOFTWARE\Classes\Applications\thebat.exe" ""
;
DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls" "$INSTDIR\thebat.exe" 
DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls" "$INSTDIR\licence_rus.rtf"
;
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\YUCache\The Bat!" 
;
DeleteRegValue HKCU "Software\Microsoft\Windows\ShellNoRoam\MUICache" "$INSTDIR\thebat.exe" 
;
RMDir /r "$INSTDIR"
SetAutoClose true 
SectionEnd 

Section "Un.Удалить пользовательские данные"  UnData
SectionIn 1 
SetShellVarContext current 
RMDir /r "$APPDATA\The Bat!\"   
SectionEnd 
;
Section "Un.Удалить настройки программы из реестра" UnReg
SectionIn 1 
DeleteRegKey HKCU "Software\RIT" 
SectionEnd 
;
LangString message ${LANG_ENGLISH} "Here is in English" 
LangString message ${LANG_RUSSIAN} "А тут по русски"
LangString DESC_Install ${LANG_RUSSIAN} "Будет установлен один из лучших почтовых клиентов  ${PRODUCT_NAME}"  
LangString DESC_Shortcuts ${LANG_RUSSIAN} "Вы можете указать ярлыки, которые будут созданы в процессе установки The Bat!"
LangString DESC_StartMenu ${LANG_RUSSIAN} "Будет создана группа ярлыков The Bat! в меню Пуск"
LangString DESC_Desktop ${LANG_RUSSIAN} "Ярлык The Bat! будет помещен на Рабочий стол"
LangString DESC_QuickLaunch ${LANG_RUSSIAN} "Ярлык The Bat! будет добавлен в панель Быстрого запуска"
LangString DESC_Uninstall ${LANG_RUSSIAN} "Программа The Bat! будет удалена с Вашего компьютера"
LangString DESC_UnData ${LANG_RUSSIAN} "Внимание, папка с данными электронной почты The Bat! будет удалена из профиля пользователя!"
LangString DESC_UnReg ${LANG_RUSSIAN} "Внимание, все настройки программы The Bat! будут удалены из реестра Windows!"
LangString DESC_Mail ${LANG_RUSSIAN} "Вы можете установить The Bat! почтовым клиентом по умолчанию и асоциировать с файлами"
LangString DESC_Defolt ${LANG_RUSSIAN} "The Bat! будет установлен в систему почтовым клиентом по умолчанию"
LangString DESC_EML ${LANG_RUSSIAN} "Файл сообщений в формате RFC-822"
LangString DESC_MSG ${LANG_RUSSIAN} "Файл сообщений в формате RFC-822"
LangString DESC_VCF ${LANG_RUSSIAN} "vCard - электронная визитная карточка"
LangString DESC_MailTo ${LANG_RUSSIAN} "URL-протокол MailTo"
;
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN 
!insertmacro MUI_DESCRIPTION_TEXT ${Install} $(DESC_Install) 
!insertmacro MUI_DESCRIPTION_TEXT ${Shortcuts} $(DESC_Shortcuts) 
!insertmacro MUI_DESCRIPTION_TEXT ${StartMenu} $(DESC_StartMenu)
!insertmacro MUI_DESCRIPTION_TEXT ${Desktop} $(DESC_Desktop)
!insertmacro MUI_DESCRIPTION_TEXT ${QuickLaunch} $(DESC_QuickLaunch)
!insertmacro MUI_DESCRIPTION_TEXT ${Mail} $(DESC_Mail)
!insertmacro MUI_DESCRIPTION_TEXT ${Defolt} $(DESC_Defolt)
!insertmacro MUI_DESCRIPTION_TEXT ${EML} $(DESC_EML)
!insertmacro MUI_DESCRIPTION_TEXT ${MSG} $(DESC_MSG)
!insertmacro MUI_DESCRIPTION_TEXT ${VCF} $(DESC_VCF)
!insertmacro MUI_DESCRIPTION_TEXT ${MailTo} $(DESC_MailTo)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;
!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Uninstall} $(DESC_Uninstall)
!insertmacro MUI_DESCRIPTION_TEXT ${UnData} $(DESC_UnData)
!insertmacro MUI_DESCRIPTION_TEXT ${UnReg} $(DESC_UnReg)
!insertmacro MUI_UNFUNCTION_DESCRIPTION_END
На основе данного скрипта сделана сборка инсталлятора программы для версии 5.0.24.
Автоматическая установка с ключом /S
Для автоматической регистрации программы в одной папке с инсталлятором должен находится файл Batkey.reg (именно с таким названием), содержащий регистрационный блок вашей лицензии.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\RIT\The BAT!]
"RegistrationBlock"="xxxxxxxxxxxxxxxxxxxxx"

В процессе установки данные будут внесены в реестр. Разумеется можно внести в этот файл и настройки программы.
В процессе установки в интерактивном режиме будет выведено сообщение о наличии или отсутствии этого файла. В режиме тихой установки вывод сообщения подавляется.
По умолчанию в варианте тихой установки создаются все ярлыки, программа ставится в русской версии почтовым клиентом по умолчанию и ассоциируется с файлами EML, MSG, VCF и протоколом MailTo
.

-------
Человек человеку - друг, товарищ и волк!


Последний раз редактировалось wolkow70, 17-04-2012 в 15:37.


Отправлено: 16:12, 02-12-2011 | #14