Un article de NeoWiki.
# NSIS Modern User Interface version 1.75 for Neo Mule
# 10.10.2006 22:00:00
Name "Neo Mule"
SetCompressor lzma
# Defines
!define REGKEY "SOFTWARE\$(^Name)" ; $(^Name) = Neo Mule !!!
!define VERSION 4.25
!define COMPANY "David Xanatos"
!define URL http://neomule.sf.net
Caption "Neo Mule ${VERSION} Setup"
BrandingText " © David Xanatos "
# Set the hyperlink up.
Function onGUIInit
BrandingURL::Set /NOUNLOAD "200" "0" "0" "http://neomule.sf.net"
FunctionEnd
;Interface Settings
!define MUI_ABORTWARNING
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\header.bmp" ; optional
# MUI defines
!define MUI_CUSTOMFUNCTION_GUIINIT onGUIInit
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-install.ico"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_LICENSEPAGE_RADIOBUTTONS
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Neo Mule"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
!define MUI_STARTMENUPAGE_DEFAULT_FOLDER "Neo Mule"
!define MUI_FINISHPAGE_LINK "Visit the Neo Mule forum for the latest news and support"
!define MUI_FINISHPAGE_LINK_LOCATION "http://eselfarm.info/efarm/board.php?boardid=277"
!define MUI_FINISHPAGE_RUN $INSTDIR\emule.exe
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-uninstall.ico"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
!define MUI_LANGDLL_REGISTRY_ROOT HKLM
!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY}
!define MUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage
# Included files
!include Sections.nsh
!include MUI.nsh
# Reserved Files
!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile "${NSISDIR}\Plugins\AdvSplash.dll"
# Variables
Var StartMenuGroup
; Adds an XP manifest to the installer
XPStyle on
; Sets the font of the installer
; SetFont "Comic Sans MS" 8
; Defines the un-/installer logo of Neo Mule
!insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\logo.bmp"
!insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\logo.bmp"
;--------------------------------
;Configuration
;!insertmacro MUI_RESERVEFILE_SPECIALBITMAP
LicenseLangString myLicenseData 1033 "${NSISDIR}\license\license.txt"
LicenseLangString myLicenseData 1031 "${NSISDIR}\license\license-GER.txt"
LicenseLangString myLicenseData 1036 "${NSISDIR}\license\license-FR.txt"
LicenseLangString myLicenseData 1034 "${NSISDIR}\license\license-SP.txt"
LicenseLangString myLicenseData 1040 "${NSISDIR}\license\license-IT.txt"
LicenseLangString myLicenseData 1049 "${NSISDIR}\license\license-RU.txt"
LicenseLangString myLicenseData 1046 "${NSISDIR}\license\license-PT_BR.txt"
LicenseLangString myLicenseData 1030 "${NSISDIR}\license\license-DK.txt"
LicenseData $(myLicenseData)
# Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "$(myLicenseData)"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Installer languages
!insertmacro MUI_LANGUAGE English
!insertmacro MUI_LANGUAGE German
!insertmacro MUI_LANGUAGE Spanish
!insertmacro MUI_LANGUAGE French
!insertmacro MUI_LANGUAGE Italian
!insertmacro MUI_LANGUAGE Russian
!insertmacro MUI_LANGUAGE PortugueseBR
!insertmacro MUI_LANGUAGE Danish
;Component-selection page
;Titles
LangString sec_main ${LANG_ENGLISH} "Program Files"
LangString sec_deinst ${LANG_ENGLISH} "Neo Mule deinstallation"
LangString sec_help ${LANG_ENGLISH} "Help Files"
LangString sec_languages ${LANG_ENGLISH} "Language Files"
LangString sec_extras ${LANG_ENGLISH} "Advanced Files"
LangString sec_link ${LANG_ENGLISH} "Take ed2k-Links"
LangString sec_shortcuts ${LANG_ENGLISH} "Shortcuts"
LangString DESC_sec_main ${LANG_ENGLISH} "Installs the program files."
LangString DESC_sec_help ${LANG_ENGLISH} "Installs available helpfiles. More languages might be available on our homepage."
LangString DESC_sec_shortcuts ${LANG_ENGLISH} "Create Neo Mule shortcut icons."
LangString DESC_sec_languages ${LANG_ENGLISH} "Full supported languages."
LangString DESC_sec_extras ${LANG_ENGLISH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_ENGLISH} "Registers Neo Mule to take ed2k/collection-Links."
LangString DESC_lang_eng ${LANG_ENGLISH} "English"
LangString DESC_lang_de ${LANG_ENGLISH} "German"
LangString De_SEC0006 ${LANG_ENGLISH} "German"
LangString Eng_SEC0010 ${LANG_ENGLISH} "English"
LangString LANGUAGEID ${LANG_ENGLISH} "1033"
LangString LANGUAGEDLL ${LANG_ENGLISH} "-"
LangString sec_main ${LANG_GERMAN} "Programmdateien"
LangString sec_deinst ${LANG_GERMAN} "Neo Mule deinstallieren"
LangString sec_help ${LANG_GERMAN} "Hilfedateien"
LangString sec_languages ${LANG_GERMAN} "Sprachdateien"
LangString sec_extras ${LANG_GERMAN} "Extras"
LangString sec_link ${LANG_GERMAN} "Ed2k-Links nehmen"
LangString sec_shortcuts ${LANG_GERMAN} "Shortcuts"
LangString DESC_sec_main ${LANG_GERMAN} "Installiert die erforderlichen Programmdateien."
LangString DESC_sec_help ${LANG_GERMAN} "Installiert verfügbare Hilfedateien. Weitere Sprachen evtl. auf unserer Homepage verfügbar."
LangString DESC_sec_shortcuts ${LANG_GERMAN} "Erstellt eine Neo Mule Verknüpfung als Desktop und/oder Schnellstart Icon."
LangString DESC_sec_languages ${LANG_GERMAN} "Voll unterstützte Sprachen von Neo Mule."
LangString DESC_sec_extras ${LANG_GERMAN} "Zusätzliche Dateien für erweiterte Funktionsunterstützung."
LangString DESC_sec_link ${LANG_GERMAN} "Registriert Neo Mule für die Annahme von ed2k/Kollektion-Links."
LangString DESC_lang_eng ${LANG_GERMAN} "Englisch"
LangString DESC_lang_de ${LANG_GERMAN} "Deutsch"
LangString De_SEC0006 ${LANG_GERMAN} "Deutsch"
LangString Eng_SEC0010 ${LANG_GERMAN} "Englisch"
LangString LANGUAGEID ${LANG_GERMAN} "1031"
LangString LANGUAGEDLL ${LANG_GERMAN} "de_DE.dll"
LangString sec_main ${LANG_SPANISH} "Archivos de programa"
LangString sec_deinst ${LANG_SPANISH} "Desinstalar Neo Mule"
LangString sec_help ${LANG_SPANISH} "Archivos de ayuda"
LangString sec_languages ${LANG_SPANISH} "Archivos de idioma"
LangString sec_extras ${LANG_SPANISH} "Arquivos de avancado"
LangString sec_link ${LANG_SPANISH} "Capturar enlaces ed2k"
LangString sec_shortcuts ${LANG_SPANISH} "Atajos"
LangString DESC_sec_main ${LANG_SPANISH} "Instalar los archivos del programa."
LangString DESC_sec_help ${LANG_SPANISH} "Instalar archivos de ayuda disponibles. En nuestra web habrá mas lenguajes disponibles."
LangString DESC_sec_shortcuts ${LANG_SPANISH} "Crear Neo Mule atajo."
LangString DESC_sec_languages ${LANG_SPANISH} "Full supported languages."
LangString DESC_sec_extras ${LANG_SPANISH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_SPANISH} "Registrar la asociación de los enlaces ed2k/Colección al Neo Mule."
LangString DESC_lang_eng ${LANG_SPANISH} "Inglés"
LangString DESC_lang_de ${LANG_SPANISH} "Alemán"
LangString De_SEC0006 ${LANG_SPANISH} "Alemán"
LangString Eng_SEC0010 ${LANG_SPANISH} "Inglés"
LangString LANGUAGEID ${LANG_SPANISH} "1034"
LangString LANGUAGEDLL ${LANG_SPANISH} "es_ES_T.dll"
LangString sec_main ${LANG_FRENCH} "Fichiers"
LangString sec_deinst ${LANG_FRENCH} "Désinstaller Neo Mule"
LangString sec_help ${LANG_FRENCH} "Fichier d'aides"
LangString sec_languages ${LANG_FRENCH} "Langue fichiers"
LangString sec_extras ${LANG_FRENCH} "Avancés fichiers"
LangString sec_link ${LANG_FRENCH} "Associer avec les liens ed2k"
LangString sec_shortcuts ${LANG_FRENCH} "Raccourcis"
LangString DESC_sec_main ${LANG_FRENCH} "Installer le fichier emule.exe"
LangString DESC_sec_help ${LANG_FRENCH} "Installer tous les fichiers d'aides disponibles."
LangString DESC_sec_shortcuts ${LANG_FRENCH} "Créer Neo Mule icône."
LangString DESC_sec_languages ${LANG_FRENCH} "Full supported languages."
LangString DESC_sec_extras ${LANG_FRENCH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_FRENCH} "Ajouter Neo Mule dans le registre pour prendre les liens ed2k/collection."
LangString DESC_lang_eng ${LANG_FRENCH} "Anglais"
LangString DESC_lang_de ${LANG_FRENCH} "German"
LangString De_SEC0006 ${LANG_FRENCH} "German"
LangString Eng_SEC0010 ${LANG_FRENCH} "Anglais"
LangString LANGUAGEID ${LANG_FRENCH} "1036"
LangString LANGUAGEDLL ${LANG_FRENCH} "fr_FR.dll"
LangString sec_main ${LANG_ITALIAN} "Programmi"
LangString sec_deinst ${LANG_ITALIAN} "Disinstalla Neo Mule"
LangString sec_help ${LANG_ITALIAN} "Aiuto"
LangString sec_languages ${LANG_ITALIAN} "Lingua Files"
LangString sec_extras ${LANG_ITALIAN} "Avanzati Files"
LangString sec_link ${LANG_ITALIAN} "Prendi gli ed2k-Links"
LangString sec_shortcuts ${LANG_ITALIAN} "Scorciatoie"
LangString DESC_sec_main ${LANG_ITALIAN} "Installa i Files del Programma"
LangString DESC_sec_help ${LANG_ITALIAN} "Installa gli Help disponibili. Nel nostro sito ce ne potrebbero essere in altre lingue."
LangString DESC_sec_shortcuts ${LANG_ITALIAN} "Crea Neo Mule icona."
LangString DESC_sec_languages ${LANG_ITALIAN} "Full supported languages."
LangString DESC_sec_extras ${LANG_ITALIAN} "Additional files for full function support."
LangString DESC_sec_link ${LANG_ITALIAN} "Fai Prendere ad Neo Mule gli ed2k/Collezione-Links."
LangString DESC_lang_eng ${LANG_ITALIAN} "Inglese"
LangString DESC_lang_de ${LANG_ITALIAN} "Tedesco"
LangString De_SEC0006 ${LANG_ITALIAN} "Tedesco"
LangString Eng_SEC0010 ${LANG_ITALIAN} "Inglese"
LangString LANGUAGEID ${LANG_ITALIAN} "1040"
LangString LANGUAGEDLL ${LANG_ITALIAN} "it_IT.dll"
LangString sec_main ${LANG_RUSSIAN} "Program Files"
LangString sec_deinst ${LANG_RUSSIAN} "Óäàëåíèå Neo Mule"
LangString sec_help ${LANG_RUSSIAN} "Ôàéëû ïîìîùè"
LangString sec_languages ${LANG_RUSSIAN} "ßçûê ôàéËû"
LangString sec_extras ${LANG_RUSSIAN} "Ïîêàçûâàòü ôàéËû"
LangString sec_link ${LANG_RUSSIAN} "Ïåðåõâàòûâàòü ed2k-Ëèíêè"
LangString sec_shortcuts ${LANG_RUSSIAN} "Shortcuts"
LangString DESC_sec_main ${LANG_RUSSIAN} "Óñòàíîâêà ôàéëîâ ïðîãðàììû"
LangString DESC_sec_help ${LANG_RUSSIAN} "Äîïîëíèòåëüíûå ÿçûêè âîçìîæíî óæå äîñòóïíû íà íàøåé âåá ñòðàíèöå."
LangString DESC_sec_shortcuts ${LANG_RUSSIAN} "Shortcuts."
LangString DESC_sec_languages ${LANG_RUSSIAN} "Full supported languages."
LangString DESC_sec_extras ${LANG_RUSSIAN} "Additional files for full function support."
LangString DESC_sec_link ${LANG_RUSSIAN} "Ðåãèñòðèðîâàòü Neo Mule äëÿ ïåðåõâàòà ed2k/Êîëëåêöèÿ-ëèíêîâ."
LangString DESC_lang_eng ${LANG_RUSSIAN} "Àíãëèéñåêèé"
LangString DESC_lang_de ${LANG_RUSSIAN} "Íåìåöêèé"
LangString De_SEC0006 ${LANG_RUSSIAN} "Íåìåöêèé"
LangString Eng_SEC0010 ${LANG_RUSSIAN} "Àíãëèéñåêèé"
LangString LANGUAGEID ${LANG_RUSSIAN} "1049"
LangString LANGUAGEDLL ${LANG_RUSSIAN} "ru_RU.dll"
LangString sec_main ${LANG_PORTUGUESEBR} "Arquivos de programas"
LangString sec_deinst ${LANG_PORTUGUESEBR} "Desinstalação do Neo Mule"
LangString sec_help ${LANG_PORTUGUESEBR} "Arquivos de ajuda"
LangString sec_languages ${LANG_PORTUGUESEBR} "Arquivos de idioma"
LangString sec_extras ${LANG_PORTUGUESEBR} "Arquivos de avançadas"
LangString sec_link ${LANG_PORTUGUESEBR} "Pegar Links ed2k"
LangString sec_shortcuts ${LANG_PORTUGUESEBR} "Atalhos"
LangString DESC_sec_main ${LANG_PORTUGUESEBR} "Instalar o arquivo emule.exe"
LangString DESC_sec_help ${LANG_PORTUGUESEBR} "Instalar todos arquivos de Ajuda disponíveis."
LangString DESC_sec_shortcuts ${LANG_PORTUGUESEBR} "Atalhos."
LangString DESC_sec_languages ${LANG_PORTUGUESEBR} "Full supported languages."
LangString DESC_sec_extras ${LANG_PORTUGUESEBR} "Additional files for full function support."
LangString DESC_sec_link ${LANG_PORTUGUESEBR} "Registrar Neo Mule para pegar links ed2k/coleção."
LangString DESC_lang_eng ${LANG_PORTUGUESEBR} "Inglês"
LangString DESC_lang_de ${LANG_PORTUGUESEBR} "Alemão"
LangString De_SEC0006 ${LANG_PORTUGUESEBR} "Alemão"
LangString Eng_SEC0010 ${LANG_PORTUGUESEBR} "Inglês"
LangString LANGUAGEID ${LANG_PORTUGUESEBR} "1046"
LangString LANGUAGEDLL ${LANG_PORTUGUESEBR} "pt_BR.dll"
LangString sec_main ${LANG_DANISH} "Programmer"
LangString sec_deinst ${LANG_DANISH} "Afinstaller Neo Mule"
LangString sec_help ${LANG_DANISH} "Hjælpefiler"
LangString sec_languages ${LANG_DANISH} "Sprogfiler"
LangString sec_extras ${LANG_DANISH} "Yderligere filer"
LangString sec_link ${LANG_DANISH} "Overtag ed2k-Links"
LangString sec_shortcuts ${LANG_DANISH} "Shortcuts"
LangString DESC_sec_main ${LANG_DANISH} "Installerer programfilen emule.exe"
LangString DESC_sec_help ${LANG_DANISH} "Installerer alle tilgængelige hjælpefiler."
LangString DESC_sec_shortcuts ${LANG_DANISH} "Shortcuts."
LangString DESC_sec_languages ${LANG_DANISH} "Full supported languages."
LangString DESC_sec_extras ${LANG_DANISH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_DANISH} "Registrerer Neo Mule til at overtage ed2k/Kollektion-Links."
LangString DESC_lang_eng ${LANG_DANISH} "English"
LangString DESC_lang_de ${LANG_DANISH} "German"
LangString De_SEC0006 ${LANG_DANISH} "German"
LangString Eng_SEC0010 ${LANG_DANISH} "English"
LangString LANGUAGEID ${LANG_DANISH} "1030"
LangString LANGUAGEDLL ${LANG_DANISH} "da_DK.dll"
;--------------------------------
# Installer attributes
OutFile Neo_Mule_${VERSION}_installer.exe
InstallDir "$PROGRAMFILES\Neo Mule"
InstallDirRegKey HKLM "Software\Neo Mule" Path
CRCCheck on
ShowInstDetails hide
ShowUninstDetails hide
InstType "Full"
InstType "Lite"
InstType "Minimal"
# Installer sections
Section $(sec_main) sec_main
SectionIn 1 2 3
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\emule.exe"
File "${NSISDIR}\changelog.txt"
SetOutPath $INSTDIR\config
File "${NSISDIR}\config\countryflag32.dll"
File "${NSISDIR}\config\countryflag.dll"
File "${NSISDIR}\config\dlp.dll"
File "${NSISDIR}\config\dlp.sig"
File "${NSISDIR}\config\eMule Light.tmpl"
File "${NSISDIR}\config\eMule.tmpl"
File "${NSISDIR}\config\ip-to-country.csv"
File "${NSISDIR}\config\leechers.dat"
File "${NSISDIR}\config\leechers.sig"
SetOverwrite off
File "${NSISDIR}\config\server.met"
SetOverwrite on
File "${NSISDIR}\config\webcaches.xml"
SetOutPath $INSTDIR\webserver
File "${NSISDIR}\webserver\*"
WriteRegStr HKLM "${REGKEY}\Components" sec_main 1
SectionEnd
Section $(sec_link) sec_link
SectionIn 1 2
DeleteRegKey HKCR "ed2k"
WriteRegStr HKEY_CLASSES_ROOT ed2k "" "URL: ed2k Protocol"
WriteRegStr HKEY_CLASSES_ROOT ed2k "URL Protocol" ""
WriteRegStr HKEY_CLASSES_ROOT ed2k\shell "" open
WriteRegStr HKEY_CLASSES_ROOT ed2k\DefaultIcon "" $INSTDIR\eMule.exe,1
WriteRegStr HKEY_CLASSES_ROOT ed2k\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
WriteRegStr HKEY_CLASSES_ROOT .emulecollection "" "eMule"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\.emulecollection "" "eMule"
DeleteRegKey HKLM "SOFTWARE\Classes\ed2k"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k "" "URL: ed2k Protocol"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k "URL Protocol" ""
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k\shell "" open
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k\DefaultIcon "" $INSTDIR\eMule.exe
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\.emulecollection "" "eMule"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule "" "eMule Collection File"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule\shell "" open
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule\DefaultIcon "" $INSTDIR\eMule.exe
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
DeleteRegKey HKCR "eMule"
WriteRegStr HKEY_CLASSES_ROOT eMule "" "eMule Collection"
WriteRegStr HKEY_CLASSES_ROOT eMule\shell "" open
WriteRegStr HKEY_CLASSES_ROOT eMule\DefaultIcon "" $INSTDIR\eMule.exe,1
WriteRegStr HKEY_CLASSES_ROOT eMule\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
SectionEnd
SectionGroup $(sec_shortcuts) sec_shortcuts
Section /o Desktop SEC0001
SectionIn 1
SetShellVarContext all
SetOutPath $DESKTOP
CreateShortcut "$DESKTOP\Neo Mule.lnk" $INSTDIR\emule.exe
WriteRegStr HKLM "${REGKEY}\Components" Desktop 1
SectionEnd
Section /o Quicklaunchbar SEC0002
SectionIn 1
SetShellVarContext all
SetOutPath $QUICKLAUNCH
CreateShortcut "$QUICKLAUNCH\Neo Mule.lnk" $INSTDIR\emule.exe
WriteRegStr HKLM "${REGKEY}\Components" Quicklaunchbar 1
SectionEnd
SectionGroupEnd
SectionGroup $(sec_extras) sec_extras
Section "antiLeech DLP v21" SEC0003
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\config\antiLeech.dll.new"
WriteRegStr HKLM "${REGKEY}\Components" "antiLeech DLP" 1
SectionEnd
Section "MediaInfo v0.7.0.3" SEC0004
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\MediaInfo.dll"
WriteRegStr HKLM "${REGKEY}\Components" "MediaInfo" 1
SectionEnd
Section "unrar v3.60.100.215" SEC0005
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\unrar.dll"
WriteRegStr HKLM "${REGKEY}\Components" "unrar" 1
SectionEnd
Section "Skin Template" SEC0011
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite off
File "${NSISDIR}\Template.eMuleSkin.ini"
WriteRegStr HKLM "${REGKEY}\Components" "Template.eMuleSkin" 1
SectionEnd
Section "Web Services" SEC0012
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR\config
SetOverwrite off
File "${NSISDIR}\config\webservices.dat"
WriteRegStr HKLM "${REGKEY}\Components" "Web Services" 1
SectionEnd
SectionGroupEnd
SectionGroup $(sec_languages) sec_languages
Section $(Eng_SEC0010) Eng_SEC0010
SectionIn 1 2 3 RO
SectionEnd
Section $(De_SEC0006) De_SEC0006
SectionIn 1
SetShellVarContext all
SetOutPath $INSTDIR\lang
SetOverwrite on
File "${NSISDIR}\lang\de_DE.dll"
WriteRegStr HKLM "${REGKEY}\Components" Deutsch 1
SectionEnd
SectionGroupEnd
SectionGroup $(sec_help) sec_help
Section /o $(DESC_lang_eng) SecHelpEng
SectionIn 1
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\eMule.chm"
WriteRegStr HKLM "${REGKEY}\Components" English 1
SectionEnd
Section /o $(DESC_lang_de) SecHelpDe
SectionIn 1
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\eMule.1031.chm"
WriteRegStr HKLM "${REGKEY}\Components" German 1
SectionEnd
SectionGroupEnd
Section -post SEC0009
SetShellVarContext all
WriteRegStr HKLM "${REGKEY}" Path $INSTDIR
WriteUninstaller $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
SetOutPath $SMPROGRAMS\$StartMenuGroup
CreateShortCut "$SMPROGRAMS\$StartMenuGroup\Neo Mule.lnk" "$INSTDIR\eMule.exe"
WriteINIStr "$SMPROGRAMS\$StartMenuGroup\Neo Mule Homepage.url" "InternetShortcut" "URL" "http://neomule.sf.net"
WriteINIStr "$SMPROGRAMS\$StartMenuGroup\Neo Mule Forum.url" "InternetShortcut" "URL" "http://eselfarm.info/efarm/board.php?boardid=277"
CreateShortCut "$SMPROGRAMS\$StartMenuGroup\TheDir.lnk" "$INSTDIR\" "" "" 0 SW_SHOWMAXIMIZED CONTROL|SHIFT|Z
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk" $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_END
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\emule.exe
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
SectionEnd
# Macro for selecting uninstaller sections
!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
Push $R0
ReadRegStr $R0 HKLM "${REGKEY}\Components" "${SECTION_NAME}"
StrCmp $R0 1 0 next${UNSECTION_ID}
!insertmacro SelectSection "${UNSECTION_ID}"
GoTo done${UNSECTION_ID}
next${UNSECTION_ID}:
!insertmacro UnselectSection "${UNSECTION_ID}"
done${UNSECTION_ID}:
Pop $R0
!macroend
# Uninstaller sections
Section /o un.$(DESC_lang_de) UNSEC0008
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\eMule.1031.chm
DeleteRegValue HKLM "${REGKEY}\Components" German
SectionEnd
Section /o un.$(DESC_lang_eng) UNSEC0007
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\eMule.chm
DeleteRegValue HKLM "${REGKEY}\Components" English
SectionEnd
Section /o un.$(De_SEC0006) UNSEC0006
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\lang\de_DE.dll
DeleteRegValue HKLM "${REGKEY}\Components" Deutsch
SectionEnd
Section /o "un.Web Services" UNSEC0012
SetShellVarContext all
DeleteRegValue HKLM "${REGKEY}\Components" "Web Services"
SectionEnd
Section /o "un.Skin Template" UNSEC0011
SetShellVarContext all
DeleteRegValue HKLM "${REGKEY}\Components" "Template.eMuleSkin"
SectionEnd
Section /o "un.unrar v3.60.100.215" UNSEC0005
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\unrar.dll
DeleteRegValue HKLM "${REGKEY}\Components" "unrar"
SectionEnd
Section /o "un.MediaInfo v0.7.0.3" UNSEC0004
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\MediaInfo.dll
DeleteRegValue HKLM "${REGKEY}\Components" "MediaInfo"
SectionEnd
Section /o "un.antiLeech DLP v21" UNSEC0003
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\antiLeech.dll.new
DeleteRegValue HKLM "${REGKEY}\Components" "antiLeech DLP"
SectionEnd
Section /o un.Quicklaunchbar UNSEC0002
SetShellVarContext all
Delete /REBOOTOK "$QUICKLAUNCH\Neo Mule.lnk"
DeleteRegValue HKLM "${REGKEY}\Components" Quicklaunchbar
SectionEnd
Section /o un.Desktop UNSEC0001
SetShellVarContext all
Delete /REBOOTOK "$DESKTOP\Neo Mule.lnk"
DeleteRegValue HKLM "${REGKEY}\Components" Desktop
SectionEnd
Section /o un.$(sec_main) UNSEC0000
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\webserver\*
RmDir /REBOOTOK $INSTDIR\webserver
Delete /REBOOTOK $INSTDIR\config\webcaches.xml
Delete /REBOOTOK $INSTDIR\config\leechers.sig
Delete /REBOOTOK $INSTDIR\config\leechers.dat
Delete /REBOOTOK $INSTDIR\config\ip-to-country.csv
Delete /REBOOTOK $INSTDIR\config\eMule.tmpl
Delete /REBOOTOK "$INSTDIR\config\eMule Light.tmpl"
Delete /REBOOTOK $INSTDIR\config\dlp.sig
Delete /REBOOTOK $INSTDIR\config\dlp.dll
Delete /REBOOTOK $INSTDIR\config\countryflag.dll
Delete /REBOOTOK $INSTDIR\config\countryflag32.dll
Delete /REBOOTOK $INSTDIR\changelog.txt
Delete /REBOOTOK $INSTDIR\emule.exe
DeleteRegValue HKLM "${REGKEY}\Components" sec_main
SectionEnd
Section un.post UNSEC0009
SetShellVarContext all
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Neo Mule.lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Neo Mule Homepage.url"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Neo Mule Forum.url"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\TheDir.lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk"
Delete /REBOOTOK $INSTDIR\uninstall.exe
DeleteRegValue HKLM "${REGKEY}" StartMenuGroup
DeleteRegValue HKLM "${REGKEY}" Path
DeleteRegKey /IfEmpty HKLM "${REGKEY}\Components"
DeleteRegKey /IfEmpty HKLM "${REGKEY}"
RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
RmDir /REBOOTOK $INSTDIR
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\antiLeech.dll"
Delete "$INSTDIR\antiLeech.dll.new"
Delete "$INSTDIR\MediaInfo.dll"
Delete "$INSTDIR\unrar.dll"
Delete "$INSTDIR\*.chm"
Delete "$INSTDIR\*.old"
Delete "$INSTDIR\*.bak"
Delete "$INSTDIR\config\server_met"
Delete "$INSTDIR\config\*.bak"
Delete "$INSTDIR\config\*.old"
Delete "$INSTDIR\config\*.dll"
Delete "$INSTDIR\config\*.tmpl"
Delete "$INSTDIR\config\*.sig"
Delete "$INSTDIR\lang\*.dll"
SetShellVarContext all
RMDir "$INSTDIR\config"
RMDir "$INSTDIR\Incoming"
RMDir "$INSTDIR\lang"
RMDir "$INSTDIR\logs"
RMDir "$INSTDIR\skins"
RMDir "$INSTDIR\Temp"
SectionEnd
# Installer functions
Function .onInit
InitPluginsDir
Push $R1
File /oname=$PLUGINSDIR\spltmp.bmp "${NSISDIR}\Contrib\Graphics\Wizard\splash.bmp"
advsplash::show 1200 1000 1000 -1 $PLUGINSDIR\spltmp
Pop $R1
Pop $R1
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
;--------------------------------
;Descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${sec_main} $(DESC_sec_main)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_link} $(DESC_sec_link)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_shortcuts} $(DESC_sec_shortcuts)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_languages} $(DESC_sec_languages)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_extras} $(DESC_sec_extras)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0003} "Argos antiLeech dynamic link library. http://xtreme-mod.net"
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0004} "Library for read info about media files. http://mediainfo.sourceforge.net"
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0005} "RAR decompression dynamic link library. http://rarlab.com"
!insertmacro MUI_DESCRIPTION_TEXT ${De_SEC0006} "German translation by Betatester/Team eselfarm."
!insertmacro MUI_DESCRIPTION_TEXT ${Eng_SEC0010} "Default language by David Xanatos. You can change the language setting any time in the Options » General tab."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0011} "Template.eMuleSkin.ini to create and customize own skin (colors, icons...)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0012} "webservices.dat - Webservices Configuration File."
!insertmacro MUI_DESCRIPTION_TEXT ${sec_help} $(DESC_sec_help)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
## Unload the plugin.
Function .onGUIEnd
BrandingURL::Unload
FunctionEnd
;--------------------------------
# Uninstaller functions
Function un.onInit
ReadRegStr $INSTDIR HKLM "${REGKEY}" Path
ReadRegStr $StartMenuGroup HKLM "${REGKEY}" StartMenuGroup
!insertmacro MUI_UNGETLANGUAGE
!insertmacro SELECT_UNSECTION sec_main ${UNSEC0000}
!insertmacro SELECT_UNSECTION Desktop ${UNSEC0001}
!insertmacro SELECT_UNSECTION Quicklaunchbar ${UNSEC0002}
!insertmacro SELECT_UNSECTION "antiLeech DLP v21" ${UNSEC0003}
!insertmacro SELECT_UNSECTION "MediaInfo v0.7.0.3" ${UNSEC0004}
!insertmacro SELECT_UNSECTION "unrar v3.60.100.215" ${UNSEC0005}
!insertmacro SELECT_UNSECTION De_SEC0006 ${UNSEC0006}
!insertmacro SELECT_UNSECTION English ${UNSEC0007}
!insertmacro SELECT_UNSECTION German ${UNSEC0008}
!insertmacro SELECT_UNSECTION "Skin Template" ${UNSEC0011}
!insertmacro SELECT_UNSECTION "Web Services" ${UNSEC0012}
FunctionEnd
# Installer Language Strings
# TODO Update the Language Strings with the appropriate translations.
LangString ^UninstallLink ${LANG_ENGLISH} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_GERMAN} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_SPANISH} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_FRENCH} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_ITALIAN} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_RUSSIAN} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_PORTUGUESEBR} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_DANISH} "Uninstall $(^Name)"