脚本:Winamp5音效增强绿色版
优质
小牛编辑
132浏览
2023-12-01
引用winamp.nsi的内容:
####################################################################################### # 编译: 必须使用 NSIS 2.01 或以上版本 # 脚本编写: 蓝色网际 # 自定义设置,版本号等等 !define VER_MAJOR "5" !define VER_MINOR "094" # 是否添加到控制面板卸载程序 ;!define ADDUNINSTREG ####################################################################################### ;----------------------------------安装程序属性 Name "Winamp" OutFile "Winamp\setup.exe" Caption "Nullsoft Winamp ${VER_MAJOR}.${VER_MINOR} 音效增强绿色版" SetCompressor /SOLID lzma BrandingText "绿色软件" InstallDir "$PROGRAMFILES\Winamp" !ifdef ADDUNINSTREG InstallDirRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winamp${VER_MAJOR}" "InstallDir" !endif ShowInstDetails show ShowUninstDetails show AutoCloseWindow true SpaceTexts none ;Var HWND Var hFile !include "UsefulLib.nsh" ${GetChild} ${ForEachFile} ${un.DelFileByLog} ${un.RMDir} !include "MUI.nsh" ;----------------------------------页面界面设置 !define MUI_ICON ".\resource\inst.ico" !define MUI_UNICON ".\resource\uninst.ico" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP ".\resource\modern-header.bmp" !define MUI_COMPONENTSPAGE_NODESC ;----------------------------------页面文本设置 !define MUI_LICENSEPAGE_TEXT_TOP "请在安装前阅读并同意下面的许可条款" !define MUI_ABORTWARNING ;----------------------------------插入页面 !define MUI_PAGE_CUSTOMFUNCTION_SHOW LicenseShow !insertmacro MUI_PAGE_LICENSE ".\resource\License.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ;----------------------------------插入语言 !insertmacro MUI_LANGUAGE SimpChinese !define InstFile `!insertmacro InstFile` !macro InstFile FILE Push `${FILE}` Call InstFile !macroend Function InstFile Exch $R0 Push $R1 ${if} ${fileexists} `$EXEDIR\$R0` SetDetailsPrint none ClearErrors CopyFiles /SILENT /FILESONLY `$EXEDIR\$R0` $OUTDIR SetDetailsPrint both ${GetChild} $R1 `$R0` ${unless} ${errors} FileWrite $hFile `File: wrote to "$OUTDIR\$R1"$\r$\n` ${CompactPathEx} $R1 `安装: $OUTDIR\$R1` 70 ${else} ${CompactPathEx} $R1 `安装失败: $OUTDIR\$R1` 70 ${endunless} DetailPrint $R1 ${else} FileWrite $hFile `File: missing "$EXEDIR\$R0"$\r$\n` ${CompactPathEx} $R1 `文件丢失: $EXEDIR\$R0` 70 DetailPrint $R1 ${endif} Pop $R1 Pop $R0 FunctionEnd !define InstDir `!insertmacro InstDir` !macro InstDir FILE_SPEC Push `${FILE_SPEC}` Call InstDir !macroend Function InstDir Exch $R0 Push $R1 ${if} ${fileexists} `$EXEDIR\$R0\*` GetFunctionAddress $R1 CallBackProc ${ForEachFile} `$EXEDIR\$R0` $R1 ${endif} Pop $R1 Pop $R0 FunctionEnd Function CallBackProc Exch $R0 Push $R1 ClearErrors SetDetailsPrint none CopyFiles /SILENT /FILESONLY $R0 $OUTDIR SetDetailsPrint both ${GetChild} $R1 `$R0` ${unless} ${errors} FileWrite $hFile `File: wrote to "$OUTDIR\$R1"$\r$\n` ${CompactPathEx} $R1 `安装: $OUTDIR\$R1` 70 ${else} ${CompactPathEx} $R1 `安装失败: $OUTDIR\$R1` 70 ${endunless} DetailPrint $R1 Pop $R1 Pop $R0 FunctionEnd !define WriteINIStr `!insertmacro WriteINIStr` !macro WriteINIStr INI_FILE_NAME SECTION VALUE DATA Push $R9 ReadINIStr $R9 "${INI_FILE_NAME}" "${SECTION}" "${VALUE}" StrCmp $R9 "" 0 +2 WriteINIStr "${INI_FILE_NAME}" "${SECTION}" "${VALUE}" "${DATA}" Pop $R9 !macroend InstType "默认" InstType "完全" Section "主程序" SEC_MAIN SectionIn 1 2 RO FileOpen $hFile `$INSTDIR\install.log` a SetOutPath `$INSTDIR` ${InstFile} `Winamp.exe` ${InstFile} `demo.mp3` ${InstFile} `WhatsNew.txt` ${InstFile} `Winamp.q1` ${InstFile} `汉化说明.txt` ${InstFile} `winampmb.htm` ${InstFile} `简体中文.lng` SetOutPath `$INSTDIR\Windows 98、Me备用文件` ${InstDir} `Windows 98、Me备用文件` SetOutPath `$INSTDIR\Skins` ${InstFile} `Skins\30FormChineseSkinBlue_1.1.wsz` ${InstFile} `Skins\30FormChineseSkin_1.5.wsz` ReadINIStr $0 `$INSTDIR\Winamp.ini` Winamp skin ${if} $0 == `` ${andif} ${fileexists} `$INSTDIR\Skins\30FormChineseSkin_1.5.wsz` WriteINIStr `$INSTDIR\Winamp.ini` Winamp skin `30FormChineseSkin_1.5.wsz` ${endif} SetOutPath `$INSTDIR\Plugins` ${InstFile} `Plugins\in_wave.dll` ${InstFile} `Plugins\out_wave.dll` WriteINIStr `$INSTDIR\Winamp.ini` Winamp inet_mode 2 WriteINIStr `$INSTDIR\Winamp.ini` Winamp newverchk 0 WriteINIStr `$INSTDIR\Winamp.ini` Winamp newverchk2 0 ${WriteINIStr} `$INSTDIR\Winamp.ini` Winamp mb_open 0 ${WriteINIStr} `$INSTDIR\Winamp.ini` Winamp pe_fontsize 12 WriteINIStr `$INSTDIR\Winamp.ini` Winamp langpack `简体中文.lng` ${WriteINIStr} `$INSTDIR\Winamp.ini` Winamp check_ft_startup 0 SectionEnd SectionGroup "输入插件" SEC_INPUT Section "MPEG 解码插件" SEC_MPEG SectionIn 1 2 ;${InstFile} `Plugins\!in_mp3.dll` ${InstFile} `Plugins\in_mpg123.dll` SectionEnd Section "CDDA 输入插件" SEC_CDDA SectionIn 1 2 ${InstFile} `Plugins\in_cdda.dll` SectionEnd Section "MPC 解码插件" SEC_MPC SectionIn 1 2 ${InstFile} `Plugins\in_mpc.dll` SectionEnd Section "MP4 解码插件" SEC_MP4 SectionIn 1 2 ${InstFile} `Plugins\in_mp4.dll` SectionEnd Section "APE 解码插件" SEC_APE SectionIn 1 2 ${InstFile} `Plugins\in_APE.dll` SectionEnd Section "FLAC 解码插件" SEC_FLAC SectionIn 1 2 ${InstFile} `Plugins\in_flac.dll` SectionEnd Section "CUE Sheet 读取插件" SEC_CUE SectionIn 1 2 ${InstFile} `Plugins\in_cue.dll` SectionEnd Section "MIDI 输入插件" SEC_MIDI SectionIn 1 2 ${InstFile} `Plugins\in_midi.dll` SectionEnd Section "模块解码插件" SEC_MOD SectionIn 1 2 ${InstFile} `Plugins\in_mod.dll` SectionEnd Section "OGG 解码插件" SEC_OGG SectionIn 1 2 ${InstFile} `Plugins\in_vorbis.dll` SectionEnd Section "WMA 解码插件" SEC_WMA SectionIn 1 2 ${InstFile} `Plugins\in_wm.dll` ;如果已安装则跳过 ; ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32" "msacm.msaudio1" ; ReadRegStr $1 HKLM "System\CurrentControlSet\Control\MediaResources\ACM\msacm.msaudio1" "Driver" ; ${if} $0 != "msaud32.acm" ; ${andif} $1 != "msaud32.acm" ; ${andif} ${fileexists} "$EXEDIR\wmaudioredist.exe" ; ExecWait '"$EXEDIR\wmaudioredist.exe" /Q /R:N' ; ${endif} SectionEnd Section "Real 音频输入插件" SEC_REAL SectionIn 1 2 ${InstFile} `Plugins\in_tara.dll` SetOutPath $INSTDIR ${InstFile} `tara.ini` SetOutPath `$INSTDIR\Plugins` SectionEnd SectionGroupEnd SectionGroup "输出插件" SEC_OUTPUT Section "DirectSound 输出插件" SEC_DS SectionIn 1 2 ${InstFile} `Plugins\out_ds.dll` SectionEnd Section "磁盘输出插件" SEC_DISK SectionIn 2 ${InstFile} `Plugins\out_disk.dll` SectionEnd Section "LAME 编码器输出插件" SEC_LAME SectionIn 2 ${InstFile} `Plugins\out_lame.dll` ${InstFile} `Plugins\lame_enc.dll` ${unless} ${fileexists} `$INSTDIR\Plugins\out_lame.xml` ${InstFile} `Plugins\out_lame.xml` ${endunless} ${unless} ${fileexists} `$INSTDIR\Plugins\out_lame.xsd` ${InstFile} `Plugins\out_lame.xsd` ${endunless} SectionEnd Section "5.1 声道输出插件" SEC_KB51 SectionIn 2 ${InstFile} `Plugins\out_KB51chn.dll` SectionEnd SectionGroupEnd SectionGroup "常规插件" SEC_GEN Section "热键控制" SEC_HOTKEY SectionIn 1 2 ${InstFile} `Plugins\gen_hotkeys.dll` SectionEnd Section "恢复播放" SEC_RESTORE SectionIn 1 2 ${InstFile} `Plugins\gen_timerestore.dll` SetOutPath `$INSTDIR\Plugins\trap` ${InstFile} `Plugins\trap\trap_简体中文.ini` ${InstFile} `Plugins\trap\trap_happy.ini` SetOutPath `$INSTDIR\Plugins` ${WriteINIStr} `$INSTDIR\Winamp.ini` `时间恢复和自动播放` lang `简体中文` ${WriteINIStr} `$INSTDIR\Winamp.ini` `时间恢复和自动播放` options 3 SectionEnd Section "曲目跳转" SEC_JUMP SectionIn 1 2 ${InstFile} `Plugins\gen_jumpex.dll` SectionEnd Section "托盘控制器" SEC_TRAY SectionIn 2 ${InstFile} `Plugins\gen_tray.dll` SectionEnd Section "标题字体设置" SEC_FONT SectionIn 2 ${InstFile} `Plugins\gen_tfp2_CN.dll` ${InstFile} `Plugins\FontColor.the` SetOutPath `$INSTDIR\Plugins\Font Plug II` ${InstDir} `Plugins\Font Plug II` SetOutPath `$INSTDIR\Plugins` SectionEnd SectionGroupEnd SectionGroup 'DSP' SEC_DSP Section "DFX" SEC_DFX SectionIn 2 ${InstFile} `Plugins\dsp_dfx.dll` SetOutPath `$INSTDIR\Plugins\Dfx` ${InstFile} `Plugins\Dfx\dfx_skin.txt` SetOutPath `$INSTDIR\Plugins\Dfx\Presets\Factsoft` ${InstDir} `Plugins\Dfx\Presets\Factsoft` SetOutPath `$INSTDIR\Plugins\Dfx\Presets\User` ${InstDir} `Plugins\Dfx\Presets\User` SetOutPath `$INSTDIR\Plugins\Dfx\Shared\Skins\default_Winamp` ${InstDir} `Plugins\Dfx\Shared\Skins\default_Winamp` SetOutPath `$INSTDIR\Plugins\Dfx\Shared\Skins\default_Winamp_minip` ${InstDir} `Plugins\Dfx\Shared\Skins\default_Winamp_mini` SetOutPath `$INSTDIR` ${InstFile} `dfxg11.dll` SetOutPath `$INSTDIR\Plugins` WriteRegStr HKLM "SOFTWARE\DFX\11\host_plugin_folder" "" "$INSTDIR\Plugins" WriteRegStr HKLM "SOFTWARE\DFX\11\top_folder" "" "$INSTDIR\Plugins\Dfx" WriteRegStr HKLM "SOFTWARE\DFX\11\top_host_folder" "" "$INSTDIR" WriteRegStr HKLM "SOFTWARE\DFX\11\REGISTRATION\stat" "" "3" WriteRegStr HKLM "SOFTWARE\DFX\11\top_shared_folder" "" "$INSTDIR\Plugins\Dfx\Shared" SectionEnd Section "Dee" SEC_DEE SectionIn 2 ${InstFile} `Plugins\dsp_dee.dll` SetOutPath `$INSTDIR\Plugins\dee_presets` ${InstDir} `Plugins\dee_presets` SetOutPath `$INSTDIR\Plugins` SectionEnd Section "Enhancer" SEC_ENH SectionIn 2 ${InstFile} `Plugins\dsp_enh.dll` SetOutPath `$INSTDIR\Plugins\Enhancer\017` ${InstDir} `Plugins\Enhancer\017` SetOutPath `$INSTDIR\Plugins` SectionEnd Section "iZotope Ozone" SEC_IZOZONE SectionIn 2 ${InstFile} `Plugins\dsp_izOzone.dll` SetOutPath `$INSTDIR\Plugins\Ozone` ${InstDir} `Plugins\Ozone` SetOutPath `$INSTDIR\Plugins\Ozone\Readme` ${InstDir} `Plugins\Ozone\Readme` SetOutPath `$INSTDIR\Plugins` WriteRegStr HKCU "Software\iZotope\Ozone\Winamp2" "EmailAddress" "dgyf44@sohu.com" WriteRegStr HKCU "Software\iZotope\Ozone\Winamp2" "RegName" "dgyf44" WriteRegStr HKCU "Software\iZotope\Ozone\Winamp2" "RegCode" "459212" SectionEnd Section "均衡器(替换者)" SEC_NEQ SectionIn 2 ${InstFile} `Plugins\dsp_neq.dll` ${InstFile} `Plugins\preset.neq` SectionEnd Section "OctiMax" SEC_OCTIMAX SectionIn 2 ${InstFile} `Plugins\dsp_omx.dll` ${InstFile} `Plugins\octimax winamp.ini` SectionEnd Section "DSP 管理器" SEC_DSPMRG SectionIn 2 ${InstFile} `Plugins\dsp_multiple.dll` SectionEnd SectionGroupEnd Section "-post" SEC_POST FileClose $hFile !ifdef ADDUNINSTREG WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winamp2" "DisplayName" "Winamp ${VER_MAJOR}.${VER_MINOR} 简体中文经典版" WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winamp2" "UninstallString" "$\"$INSTDIR\UninstWA.exe$\"" WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winamp2" "Installer Language" "$LANGUAGE" WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winamp2" "InstallDir" "$INSTDIR" !endif WriteUninstaller "$INSTDIR\UninstWA.exe" Exec `"$INSTDIR\Winamp.exe" /NEW` SectionEnd !macro VerifyFile FILE ${unless} ${fileexists} `$EXEDIR\${FILE}` MessageBox MB_OK|MB_ICONSTOP `找不到文件: "$EXEDIR\${FILE}"` Quit ${endunless} !macroend Function .onInit !insertmacro VerifyFile `Winamp.exe` !insertmacro VerifyFile `Plugins\in_wave.dll` !insertmacro VerifyFile `Plugins\out_wave.dll` FunctionEnd Function LicenseShow FindWindow $0 "#32770" "" $HWNDPARENT GetDlgItem $0 $0 1000 ;同时还可以换一个艺术的字体 CreateFont $1 "Comic Sans Ms" "8" SendMessage $0 ${WM_SETFONT} $1 0 FunctionEnd Section Uninstall ExecWait `"$INSTDIR\Winamp.exe" /UNREG` !ifdef ADDUNINSTREG DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winamp${VER_MAJOR}" !endif ${if} ${fileexists} `$INSTDIR\Plugins\out_lame.dll` Delete `$INSTDIR\Plugins\out_lame.xml` Delete `$INSTDIR\Plugins\out_lame.xsd` ${endif} ${un.DelFileByLog} `$INSTDIR\install.log` Delete `$INSTDIR\install.log` Delete `$INSTDIR\Winamp.ini` Delete `$INSTDIR\Winamp.m3u` Delete `$INSTDIR\Plugins\musepack.ini` Delete `$INSTDIR\Plugins\plugin.ini` Delete `$INSTDIR\UninstWA.exe` ${un.RMDir} $INSTDIR SectionEnd
资源文件点击另存。