!include "MUI2.nsh" ; This is where all projects live. Ensure this is the correct relative path. !ifndef PROJECTS !define PROJECTS '..\..' !endif !ifndef FILES_PATH !define FILES_PATH '..\..\output\winamp' !endif ;------------------------ SetCompressor /SOLID /FINAL lzma SetCompressorDictSize 16 FileBufSize 64 RequestExecutionLevel admin Name "Winamp Web Development" OutFile "wa_webdev.exe" InstallDir $PROGRAMFILES\Winamp InstProgressFlags smooth XPStyle on ShowInstDetails hide AutoCloseWindow true LangString IDS_CLOSE_WINAMP ${LANG_ENGLISH} "You must close Winamp before you can continue.$\r$\n - After you have closed Winamp, select Retry.$\r$\n - If you wish to try to install anyway, select Ignore.$\r$\n - If you wish to abort the installation, select Abort." LangString IDS_USER_ABORT ${LANG_ENGLISH} "User action: Abort Installation" LangString IDS_USER_IGNORE ${LANG_ENGLISH} "User action: Ignore File" LangString IDS_PAGE_FINISH_TEXT ${LANG_ENGLISH} "To use the plugin, reopen Winamp and go to the WebDev Platform view in the Media Library." LangString IDS_PAGE_FINISH_RUN ${LANG_ENGLISH} "Launch Winamp after the installer closes" LangString IDS_FILE_PROBE ${LANG_ENGLISH} "Probing access: $OUTDIR\$0" !define MUI_ICON ".\resources\install.ico" !define MUI_UNICON ".\resources\uninstall.ico" !define MUI_ABORTWARNING !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP ".\resources\header.bmp" !define MUI_WELCOMEFINISHPAGE_BITMAP ".\resources\welcome.bmp" !define MUI_UNWELCOMEFINISHPAGE_BITMAP ".\resources\welcome.bmp" !insertmacro MUI_PAGE_WELCOME ; detect Winamp path from uninstall string if available InstallDirRegKey HKLM \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\Winamp" \ "UninstallString" !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !define MUI_FINISHPAGE_TEXT $(IDS_PAGE_FINISH_TEXT) !define MUI_FINISHPAGE_RUN !define MUI_FINISHPAGE_RUN_TEXT $(IDS_PAGE_FINISH_RUN) !define MUI_FINISHPAGE_RUN_FUNCTION FinishPage_Run !insertmacro MUI_PAGE_FINISH !insertmacro MUI_LANGUAGE "English" !include "FileFunc.nsh" !define WriteWinampFile "!insertmacro WriteWinampFile" !macro WriteWinampFile filePath Push $0 ${GetFileName} "${filePath}" $0 DetailPrint $(IDS_FILE_PROBE) ${Do} ClearErrors Delete "$OUTDIR\$0" ${If} ${Errors} SetErrors IfSilent done_${filePath} MessageBox MB_DEFBUTTON2|MB_ABORTRETRYIGNORE|MB_ICONEXCLAMATION $(IDS_CLOSE_WINAMP) IDABORT done_${filePath} IDRETRY +4 ClearErrors DetailPrint $(IDS_USER_IGNORE) Goto macroend_${filePath} ${EndIf} ${LoopWhile} ${Errors} done_${filePath}: ${If} ${Errors} Abort $(IDS_USER_ABORT) ${Else} File ${filePath} ${EndIf} macroend_${filePath}: Pop $0 !macroend Function FinishPage_Run HideWindow Exec "$INSTDIR\winamp.exe" Sleep 500 FunctionEnd Section "" SetOutPath $INSTDIR\Plugins ${WriteWinampFile} "${FILES_PATH}\Plugins\ml_webdev.dll" SetOutPath $INSTDIR\System ${WriteWinampFile} "${FILES_PATH}\System\omBrowser.w5s" SectionEnd