125 lines
2.9 KiB
Plaintext
125 lines
2.9 KiB
Plaintext
; waplugin.nsi
|
|
;
|
|
; This script will generate an installer that installs a Winamp 2 plug-in.
|
|
;
|
|
; This installer will automatically alert the user that installation was
|
|
; successful, and ask them whether or not they would like to make the
|
|
; plug-in the default and run Winamp.
|
|
|
|
;--------------------------------
|
|
|
|
;Header Files
|
|
|
|
!include "Sections.nsh"
|
|
!include "WinMessages.nsh"
|
|
|
|
; common defines for a generic dro installer :o)
|
|
!define VERSION "0.6"
|
|
!define ALT_VER "0_6"
|
|
!define PLUG "Album Art Viewer"
|
|
!define PLUG_ALT "Album_Art_Viewer"
|
|
!define PLUG_FILE "gen_classicart"
|
|
|
|
; use leet compression
|
|
SetCompressor lzma
|
|
|
|
; adds xp style support
|
|
XPStyle on
|
|
|
|
; The name of the installer
|
|
Name "${PLUG} v${VERSION}"
|
|
|
|
; The file to write
|
|
OutFile "${PLUG_ALT}_v${ALT_VER}.exe"
|
|
|
|
InstType "Plugin only"
|
|
InstType "Plugin + language file"
|
|
InstType /NOCUSTOM
|
|
InstType /COMPONENTSONLYONCUSTOM
|
|
|
|
; The default installation directory
|
|
InstallDir $PROGRAMFILES\Winamp
|
|
InstProgressFlags smooth
|
|
|
|
; detect winamp path from uninstall string if available
|
|
InstallDirRegKey HKLM \
|
|
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Winamp" \
|
|
"UninstallString"
|
|
|
|
; The text to prompt the user to enter a directory
|
|
DirText "Please select your Winamp path below (you will be able to proceed when Winamp is detected):"
|
|
# currently doesn't work - DirShow hide
|
|
|
|
; automatically close the installer when done.
|
|
AutoCloseWindow true
|
|
|
|
; hide the "show details" box
|
|
ShowInstDetails show
|
|
|
|
;--------------------------------
|
|
|
|
;Pages
|
|
|
|
PageEx directory
|
|
Caption " "
|
|
PageExEnd
|
|
Page components
|
|
Page instfiles
|
|
|
|
;--------------------------------
|
|
|
|
|
|
; The stuff to install
|
|
Section ""
|
|
SetOverwrite on
|
|
SetOutPath "$INSTDIR\Plugins"
|
|
; File to extract
|
|
File "x86_Release\${PLUG_FILE}.dll"
|
|
SetOverwrite off
|
|
SectionEnd
|
|
|
|
Section "Example language file"
|
|
; SectionSetFlags 0 SF_BOLD
|
|
SectionIn 2
|
|
|
|
SetOverwrite on
|
|
SetOutPath "$INSTDIR\Plugins\${PLUG_FILE}"
|
|
; File to extract
|
|
File "x86_Release\LangFiles\${PLUG_FILE}.lng"
|
|
SetOverwrite off
|
|
SectionEnd
|
|
|
|
;--------------------------------
|
|
|
|
Function .onInit
|
|
;Detect running Winamp instances and close them
|
|
!define WINAMP_FILE_EXIT 40001
|
|
|
|
FindWindow $R0 "Winamp v1.x"
|
|
IntCmp $R0 0 ok
|
|
MessageBox MB_YESNO|MB_ICONEXCLAMATION "Please close all instances of Winamp before installing$\n\
|
|
${PLUG} v${VERSION}. Attempt to close Winamp now?" IDYES checkagain IDNO no
|
|
checkagain:
|
|
FindWindow $R0 "Winamp v1.x"
|
|
IntCmp $R0 0 ok
|
|
SendMessage $R0 ${WM_COMMAND} ${WINAMP_FILE_EXIT} 0
|
|
Goto checkagain
|
|
no:
|
|
Abort
|
|
ok:
|
|
FunctionEnd
|
|
|
|
Function .onInstSuccess
|
|
MessageBox MB_YESNO \
|
|
'${PLUG} was installed. Do you want to run Winamp now?' \
|
|
IDNO end
|
|
ExecShell open "$INSTDIR\Winamp.exe"
|
|
end:
|
|
FunctionEnd
|
|
|
|
Function .onVerifyInstDir
|
|
;Check for Winamp installation
|
|
IfFileExists $INSTDIR\Winamp.exe Good
|
|
Abort
|
|
Good:
|
|
FunctionEnd |