2010-11-29 20:36:27 +01:00
; ///////////////////////////////////////////////////////////////////////////////
; // LameXP - Audio Encoder Front-End
2011-01-01 17:04:25 +01:00
; // Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
2010-11-29 20:36:27 +01:00
; //
; // This program is free software; you can redistribute it and/or modify
; // it under the terms of the GNU General Public License as published by
; // the Free Software Foundation; either version 2 of the License, or
; // (at your option) any later version.
; //
; // This program is distributed in the hope that it will be useful,
; // but WITHOUT ANY WARRANTY; without even the implied warranty of
; // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; // GNU General Public License for more details.
; //
; // You should have received a copy of the GNU General Public License along
; // with this program; if not, write to the Free Software Foundation, Inc.,
; // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
; //
; // http://www.gnu.org/licenses/gpl-2.0.txt
; ///////////////////////////////////////////////////////////////////////////////
2010-12-11 02:05:51 +01:00
;--------------------------------
;Basic Defines
;--------------------------------
!ifndef LAMEXP_VERSION
!error " LAMEXP_VERSION is not defined !!! "
!endif
!ifndef LAMEXP_BUILD
!error " LAMEXP_BUILD is not defined !!! "
!endif
2011-04-14 02:21:46 +02:00
!ifndef LAMEXP_INSTTYPE
!error " LAMEXP_INSTTYPE is not defined !!! "
!endif
!ifndef LAMEXP_PATCH
!error " LAMEXP_PATCH is not defined !!! "
2010-12-11 02:05:51 +01:00
!endif
!ifndef LAMEXP_DATE
!error " LAMEXP_DATE is not defined !!! "
!endif
!ifndef LAMEXP_OUTPUT_FILE
!error " LAMEXP_OUTPUT_FILE is not defined !!! "
!endif
!ifndef LAMEXP_SOURCE_PATH
!error " LAMEXP_SOURCE_PATH is not defined !!! "
!endif
!ifndef LAMEXP_UPX_PATH
!error " LAMEXP_UPX_PATH is not defined !!! "
!endif
;UUID
!define MyRegPath " SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FBD7A67D-D700-4043-B54F-DD106D00F308} "
2011-02-26 21:23:10 +01:00
;Web-Site
2011-08-15 15:49:48 +02:00
!define MyWebSite " http://mulder.at.gg/ "
2010-12-11 02:05:51 +01:00
2011-02-27 22:28:34 +01:00
;--------------------------------
;Check for Pre-Release
;--------------------------------
!define LAMEXP_IS_PRERELEASE
!if '${LAMEXP_INSTTYPE}' == 'Final'
!undef LAMEXP_IS_PRERELEASE
!endif
!if '${LAMEXP_INSTTYPE}' == 'Hotfix'
!undef LAMEXP_IS_PRERELEASE
!endif
2010-12-11 02:05:51 +01:00
;--------------------------------
;Includes
;--------------------------------
!include ` MUI2.nsh `
2010-12-19 00:50:22 +01:00
!include ` WinVer.nsh `
2010-12-11 02:05:51 +01:00
!include ` UAC.nsh `
!include ` parameters.nsh `
;--------------------------------
;Installer Attributes
;--------------------------------
2010-11-29 20:36:27 +01:00
RequestExecutionLevel user
ShowInstDetails show
2010-12-11 02:05:51 +01:00
ShowUninstDetails show
2011-04-14 02:21:46 +02:00
Name " LameXP v${LAMEXP_VERSION} ${LAMEXP_INSTTYPE}-${LAMEXP_PATCH} [Build #${LAMEXP_BUILD}] "
2010-12-11 02:05:51 +01:00
OutFile " ${LAMEXP_OUTPUT_FILE} "
2011-02-21 13:32:37 +01:00
BrandingText " Date created: ${LAMEXP_DATE} [Build #${LAMEXP_BUILD}] "
2010-12-11 02:05:51 +01:00
InstallDir " $PROGRAMFILES \MuldeR\LameXP v${LAMEXP_VERSION} "
InstallDirRegKey HKLM " ${MyRegPath} " " InstallLocation "
2010-11-29 20:36:27 +01:00
2010-11-29 14:00:27 +01:00
2010-12-11 02:05:51 +01:00
;--------------------------------
;Compressor
;--------------------------------
SetCompressor /SOLID LZMA
SetCompressorDictSize 64
!packhdr " $%TEMP%\exehead.tmp " '"${LAMEXP_UPX_PATH}\upx.exe" --brute "$%TEMP%\exehead.tmp"'
2010-12-12 21:43:59 +01:00
;--------------------------------
;Reserved Files
;--------------------------------
ReserveFile " ${NSISDIR} \Plugins\UAC.dll "
ReserveFile " ${NSISDIR} \Plugins\System.dll "
ReserveFile " ${NSISDIR} \Plugins\nsDialogs.dll "
ReserveFile " ${NSISDIR} \Plugins\StartMenu.dll "
ReserveFile " ${NSISDIR} \Plugins\LockedList.dll "
2011-07-07 19:40:49 +02:00
ReserveFile " ${NSISDIR} \Plugins\Aero.dll "
2010-12-12 21:43:59 +01:00
2010-12-11 02:05:51 +01:00
;--------------------------------
;Variables
;--------------------------------
Var StartMenuFolder
;--------------------------------
;Version Info
;--------------------------------
2010-11-29 14:00:27 +01:00
2010-11-29 22:06:54 +01:00
!searchreplace PRODUCT_VERSION_DATE " ${LAMEXP_DATE} " " - " " . "
VIProductVersion " ${PRODUCT_VERSION_DATE}.${LAMEXP_BUILD} "
VIAddVersionKey " Author " " LoRd_MuldeR <mulder2@gmx.de> "
VIAddVersionKey " Comments " " This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. "
VIAddVersionKey " CompanyName " " Free Software Foundation "
2011-04-14 02:21:46 +02:00
VIAddVersionKey " FileDescription " " LameXP v${LAMEXP_VERSION} ${LAMEXP_INSTTYPE}-${LAMEXP_PATCH} [Build #${LAMEXP_BUILD}] "
2010-11-29 22:06:54 +01:00
VIAddVersionKey " FileVersion " " ${PRODUCT_VERSION_DATE}.${LAMEXP_BUILD} (${LAMEXP_VERSION}) "
2011-02-21 13:32:37 +01:00
VIAddVersionKey " LegalCopyright " " Copyright 2004-2011 LoRd_MuldeR "
2010-11-29 22:06:54 +01:00
VIAddVersionKey " LegalTrademarks " " GNU "
VIAddVersionKey " OriginalFilename " " LameXP.${LAMEXP_DATE}.exe "
VIAddVersionKey " ProductName " " LameXP - Audio Encoder Frontend "
VIAddVersionKey " ProductVersion " " ${LAMEXP_VERSION}, Build #${LAMEXP_BUILD} (${LAMEXP_DATE}) "
2011-08-15 21:32:47 +02:00
VIAddVersionKey " Website " " ${MyWebSite} "
2010-11-29 21:42:39 +01:00
2010-11-29 14:00:27 +01:00
2010-12-11 02:05:51 +01:00
;--------------------------------
;MUI2 Interface Settings
;--------------------------------
!define MUI_ABORTWARNING
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
!define MUI_STARTMENUPAGE_REGISTRY_KEY " ${MyRegPath} "
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME " StartmenuFolder "
2010-12-12 19:25:06 +01:00
!define MUI_LANGDLL_REGISTRY_ROOT HKLM
!define MUI_LANGDLL_REGISTRY_KEY " ${MyRegPath} "
!define MUI_LANGDLL_REGISTRY_VALUENAME " SetupLanguage "
2010-12-11 02:05:51 +01:00
!define MUI_STARTMENUPAGE_DEFAULTFOLDER " LameXP v${LAMEXP_VERSION} "
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_FUNCTION RunAppFunction
!define MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION ShowReadmeFunction
2011-02-26 21:23:10 +01:00
!define MUI_FINISHPAGE_LINK ${MyWebSite}
!define MUI_FINISHPAGE_LINK_LOCATION ${MyWebSite}
2010-12-11 02:05:51 +01:00
!define MUI_ICON " ${NSISDIR} \Contrib\Graphics\Icons\orange-install.ico "
!define MUI_UNICON " ${NSISDIR} \Contrib\Graphics\Icons\orange-uninstall.ico "
2011-04-01 00:57:52 +02:00
!define MUI_WELCOMEFINISHPAGE_BITMAP " wizard.bmp "
!define MUI_UNWELCOMEFINISHPAGE_BITMAP " wizard-un.bmp "
2010-12-11 02:05:51 +01:00
!define MUI_HEADERIMAGE
2011-04-01 00:57:52 +02:00
!define MUI_HEADERIMAGE_BITMAP " header.bmp "
!define MUI_HEADERIMAGE_UNBITMAP " header-un.bmp "
2010-12-11 02:05:51 +01:00
!define MUI_LANGDLL_ALLLANGUAGES
!define MUI_CUSTOMFUNCTION_GUIINIT MyUacInit
!define MUI_CUSTOMFUNCTION_UNGUIINIT un.MyUacInit
2011-01-20 21:06:25 +01:00
!define MUI_LANGDLL_ALWAYSSHOW
2010-12-11 02:05:51 +01:00
;--------------------------------
;MUI2 Pages
;--------------------------------
2010-12-11 23:17:21 +01:00
;Installer
2011-08-27 16:24:03 +02:00
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckForPreRelease
2010-12-12 21:43:59 +01:00
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_FINISHPAGE_TITLE_3LINES
2010-12-11 02:05:51 +01:00
!insertmacro MUI_PAGE_WELCOME
2011-02-26 21:23:10 +01:00
!insertmacro MUI_PAGE_LICENSE " license.rtf "
2010-12-11 02:05:51 +01:00
!define MUI_PAGE_CUSTOMFUNCTION_SHOW CheckForUpdate
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $StartMenu Folder
2010-12-12 21:43:59 +01:00
Page Custom LockedListShow
2010-12-11 02:05:51 +01:00
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
2010-12-11 23:17:21 +01:00
;Uninstaller
2010-12-12 21:43:59 +01:00
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_FINISHPAGE_TITLE_3LINES
2010-12-11 02:05:51 +01:00
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
2010-12-12 21:43:59 +01:00
UninstPage Custom un.LockedListShow
2010-12-11 02:05:51 +01:00
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;--------------------------------
;Languages
;--------------------------------
!insertmacro MUI_LANGUAGE " English " ;first language is the default language
!insertmacro MUI_LANGUAGE " German "
2011-01-15 02:28:33 +01:00
!insertmacro MUI_LANGUAGE " Spanish "
2011-02-18 21:42:32 +01:00
!insertmacro MUI_LANGUAGE " Russian "
2011-07-26 22:36:34 +02:00
!insertmacro MUI_LANGUAGE " Ukrainian "
2010-12-11 23:17:21 +01:00
; !insertmacro MUI_LANGUAGE "French"
; !insertmacro MUI_LANGUAGE "SpanishInternational"
; !insertmacro MUI_LANGUAGE "SimpChinese"
; !insertmacro MUI_LANGUAGE "TradChinese"
; !insertmacro MUI_LANGUAGE "Japanese"
; !insertmacro MUI_LANGUAGE "Italian"
; !insertmacro MUI_LANGUAGE "Dutch"
; !insertmacro MUI_LANGUAGE "Greek"
; !insertmacro MUI_LANGUAGE "Polish"
; !insertmacro MUI_LANGUAGE "Hungarian"
; !insertmacro MUI_LANGUAGE "Romanian"
; !insertmacro MUI_LANGUAGE "Serbian"
; !insertmacro MUI_LANGUAGE "SerbianLatin"
; !insertmacro MUI_LANGUAGE "Arabic"
; !insertmacro MUI_LANGUAGE "Portuguese"
; !insertmacro MUI_LANGUAGE "Afrikaans"
; !insertmacro MUI_LANGUAGE "Malay"
; !insertmacro MUI_LANGUAGE "Indonesian"
;--------------------------------
;Translation
;--------------------------------
;English
2011-01-13 09:23:11 +01:00
!include " ..\Translation\Blank.nsh "
2010-12-11 23:17:21 +01:00
;German
2011-01-13 09:23:11 +01:00
!include " ..\Translation\LameXP_DE.nsh "
2010-12-11 02:05:51 +01:00
2011-01-15 02:28:33 +01:00
;Spanish
!include " ..\Translation\LameXP_ES.nsh "
2011-02-18 20:14:45 +01:00
;Russian
!include " ..\Translation\LameXP_RU.nsh "
2010-12-11 02:05:51 +01:00
2011-07-26 22:36:34 +02:00
;Ukrainian
!include " ..\Translation\LameXP_UK.nsh "
2010-12-11 02:05:51 +01:00
;--------------------------------
;Installer initialization
;--------------------------------
Function .onInit
${If} ${UAC_IsInnerInstance}
2011-08-27 14:53:44 +02:00
${OrIf} ${UAC_IsAdmin}
2011-03-28 04:25:06 +02:00
!insertmacro MUI_LANGDLL_DISPLAY
2011-09-19 17:27:12 +02:00
${EndIf}
${IfNot} ${UAC_IsInnerInstance}
2010-12-14 02:02:23 +01:00
System :: Call 'kernel32::CreateMutexA(i 0, i 0, t "{2B3D1EBF-B3B6-4E93-92B9-6853029A7162}") i .r1 ?e'
Pop $0
StrCmp $0 0 + 3
MessageBox MB_ICONSTOP | MB_TOPMOST " Sorry, the installer is already running! "
Quit
2011-08-15 21:32:47 +02:00
${EndIf}
2010-12-19 00:50:22 +01:00
2011-09-19 17:27:12 +02:00
; --------
2011-04-12 18:08:44 +02:00
${IfNot} ${IsNT}
MessageBox MB_TOPMOST | MB_ICONSTOP " Sorry, this application does NOT support Windows 9x or Windows ME! "
2010-12-19 00:50:22 +01:00
Quit
${EndIf}
2011-04-08 14:05:50 +02:00
2011-08-15 15:49:48 +02:00
${If} ${AtMostWinNT4}
2011-04-12 18:08:44 +02:00
!insertmacro GetCommandlineParameter " Update " " ? " $R0
${If} $R0 == " ? "
2011-08-15 15:49:48 +02:00
MessageBox MB_TOPMOST | MB_ICONSTOP " Sorry, your platform is not supported anymore. Installation aborted!$\nThe minimum required platform is Windows 2000. "
2011-04-12 18:08:44 +02:00
${Else}
2011-08-15 15:49:48 +02:00
MessageBox MB_TOPMOST | MB_ICONSTOP " Sorry, your platform is not supported anymore. Update not possible!$\nThe minimum required platform is Windows 2000. "
2011-04-12 18:08:44 +02:00
${EndIf}
2011-04-08 14:05:50 +02:00
Quit
${EndIf}
2011-08-27 14:53:44 +02:00
${If} ${UAC_IsInnerInstance}
${OrIf} ${UAC_IsAdmin}
${If} ${IsWin2000}
${AndIf} ${AtMostServicePack} 3
2011-08-27 16:24:03 +02:00
MessageBox MB_TOPMOST | MB_ICONEXCLAMATION " Setup has detected that your system is missing important updates:$\nThe Service Pack 4 for Windows 2000 is highly recommended! "
2011-08-27 14:53:44 +02:00
MessageBox MB_TOPMOST | MB_ICONQUESTION | MB_YESNO " Do you want to download Service Pack 4 for Windows 2000 now? " IDNO + 2
ExecShell " open " " http://www.microsoft.com/download/en/details.aspx?id=4127 "
${EndIf}
${If} ${IsWinXP}
${AndIf} ${AtMostServicePack} 2
2011-08-27 16:24:03 +02:00
MessageBox MB_TOPMOST | MB_ICONEXCLAMATION " Setup has detected that your system is missing important updates:$\nThe Service Pack 3 for Windows XP is highly recommended! "
2011-08-27 14:53:44 +02:00
MessageBox MB_TOPMOST | MB_ICONQUESTION | MB_YESNO " Do you want to download Service Pack 3 for Windows XP now? " IDNO + 2
ExecShell " open " " http://technet.microsoft.com/en-us/windows/bb794714 "
${EndIf}
${If} ${IsWinVista}
${AndIf} ${AtMostServicePack} 1
2011-08-27 16:24:03 +02:00
MessageBox MB_TOPMOST | MB_ICONEXCLAMATION " Setup has detected that your system is missing important updates:$\nThe Service Pack 2 for Windows Vista is highly recommended! "
2011-08-27 14:53:44 +02:00
MessageBox MB_TOPMOST | MB_ICONQUESTION | MB_YESNO " Do you want to download Service Pack 2 for Windows Vista now? " IDNO + 2
ExecShell " open " " http://technet.microsoft.com/en-us/windows/dd262148 "
${EndIf}
${If} ${IsWin7}
${AndIf} ${AtMostServicePack} 0
2011-08-27 16:24:03 +02:00
MessageBox MB_TOPMOST | MB_ICONEXCLAMATION " Setup has detected that your system is missing important updates:$\nThe Service Pack 1 for Windows 7 is highly recommended! "
2011-08-27 14:53:44 +02:00
MessageBox MB_TOPMOST | MB_ICONQUESTION | MB_YESNO " Do you want to download Service Pack 1 for Windows 7 now? " IDNO + 2
ExecShell " open " " http://technet.microsoft.com/en-us/windows/gg635126 "
${EndIf}
2011-08-27 14:33:35 +02:00
${EndIf}
2011-09-19 17:27:12 +02:00
; --------
2011-06-10 21:55:50 +02:00
InitPluginsDir
File " /oname=$PLUGINSDIR\checkproc.exe " " checkproc.exe "
nsExec :: Exec /TIMEOUT = 5000 '"$PLUGINSDIR\checkproc.exe" Softonic Brothersoft'
2010-12-11 02:05:51 +01:00
FunctionEnd
Function un.onInit
${If} ${UAC_IsInnerInstance}
2011-09-19 17:27:12 +02:00
${OrIf} ${UAC_IsAdmin}
2010-12-11 02:05:51 +01:00
!insertmacro MUI_LANGDLL_DISPLAY
2011-09-19 17:27:12 +02:00
${EndIf}
${IfNot} ${UAC_IsInnerInstance}
2010-12-14 02:02:23 +01:00
System :: Call 'kernel32::CreateMutexA(i 0, i 0, t "{2B3D1EBF-B3B6-4E93-92B9-6853029A7162}") i .r1 ?e'
Pop $0
StrCmp $0 0 + 3
MessageBox MB_ICONSTOP | MB_TOPMOST " Sorry, the un-installer is already running! "
Quit
2010-12-11 02:05:51 +01:00
${EndIf}
FunctionEnd
;--------------------------------
;UAC initialization
;--------------------------------
Function MyUacInit
2010-11-29 14:00:27 +01:00
UAC_TryAgain :
!insertmacro UAC_RunElevated
${Switch} $0
${Case} 0
${IfThen} $1 = 1 ${|} Quit ${|}
${IfThen} $3 <> 0 ${|} ${Break} ${|}
${If} $1 = 3
2010-11-29 20:36:27 +01:00
MessageBox MB_ICONEXCLAMATION | MB_TOPMOST | MB_SETFOREGROUND | MB_OKCANCEL " This installer requires admin access, please try again! " /SD IDCANCEL IDOK UAC_TryAgain
2010-11-29 14:00:27 +01:00
${EndIf}
${Case} 1223
2010-11-29 20:36:27 +01:00
MessageBox MB_ICONEXCLAMATION | MB_TOPMOST | MB_SETFOREGROUND | MB_OKCANCEL " This installer requires admin privileges, please try again! " /SD IDCANCEL IDOK UAC_TryAgain
2010-11-29 14:00:27 +01:00
Quit
${Case} 1062
MessageBox MB_ICONSTOP | MB_TOPMOST | MB_SETFOREGROUND " Logon service not running, aborting! "
Quit
${Default}
MessageBox MB_ICONSTOP | MB_TOPMOST | MB_SETFOREGROUND " Unable to elevate installer! (Error code: $0) "
Quit
${EndSwitch}
2011-02-27 22:28:34 +01:00
2011-09-19 17:27:12 +02:00
StrCpy $0 $HWNDPARENT
System :: Call " user32::SetWindowPos(i r0, i -1, i 0, i 0, i 0, i 0, i 3) "
2011-07-07 19:40:49 +02:00
Aero :: Apply
2010-11-29 14:00:27 +01:00
FunctionEnd
2010-12-11 02:05:51 +01:00
Function un.MyUacInit
UAC_TryAgain :
!insertmacro UAC_RunElevated
${Switch} $0
${Case} 0
${IfThen} $1 = 1 ${|} Quit ${|}
${IfThen} $3 <> 0 ${|} ${Break} ${|}
${If} $1 = 3
MessageBox MB_ICONEXCLAMATION | MB_TOPMOST | MB_SETFOREGROUND | MB_OKCANCEL " This un-installer requires admin access, please try again! " /SD IDCANCEL IDOK UAC_TryAgain
${EndIf}
${Case} 1223
MessageBox MB_ICONEXCLAMATION | MB_TOPMOST | MB_SETFOREGROUND | MB_OKCANCEL " This un-installer requires admin privileges, please try again! " /SD IDCANCEL IDOK UAC_TryAgain
Quit
${Case} 1062
MessageBox MB_ICONSTOP | MB_TOPMOST | MB_SETFOREGROUND " Logon service not running, aborting! "
Quit
${Default}
MessageBox MB_ICONSTOP | MB_TOPMOST | MB_SETFOREGROUND " Unable to elevate installer! (Error code: $0) "
Quit
${EndSwitch}
2011-07-07 19:40:49 +02:00
2011-09-19 17:27:12 +02:00
StrCpy $0 $HWNDPARENT
System :: Call " user32::SetWindowPos(i r0, i -1, i 0, i 0, i 0, i 0, i 3) "
2011-07-07 19:40:49 +02:00
Aero :: Apply
2010-12-11 02:05:51 +01:00
FunctionEnd
;--------------------------------
2011-01-25 00:11:28 +01:00
;Macros & Auxiliary Functions
2010-12-11 02:05:51 +01:00
;--------------------------------
!macro PrintProgress Text
2011-01-25 00:11:28 +01:00
SetDetailsPrint textonly
DetailPrint '${Text}'
SetDetailsPrint listonly
Sleep 1000
2010-12-11 02:05:51 +01:00
!macroend
2010-12-11 23:17:21 +01:00
!macro CreateWebLink ShortcutFile TargetURL
2011-01-25 00:11:28 +01:00
Push $0
Push $1
StrCpy $0 " ${ShortcutFile} "
StrCpy $1 " ${TargetURL} "
Call _CreateWebLink
Pop $1
Pop $0
2010-12-11 23:17:21 +01:00
!macroend
Function _CreateWebLink
2011-01-25 00:11:28 +01:00
FlushINI " $0 "
SetFileAttributes " $0 " FILE_ATTRIBUTE_NORMAL
DeleteINISec " $0 " " DEFAULT "
DeleteINISec " $0 " " InternetShortcut "
WriteINIStr " $0 " " DEFAULT " " BASEURL " " $1 "
WriteINIStr " $0 " " InternetShortcut " " ORIGURL " " $1 "
WriteINIStr " $0 " " InternetShortcut " " URL " " $1 "
WriteINIStr " $0 " " InternetShortcut " " IconFile " " $SYSDIR \SHELL32.dll "
WriteINIStr " $0 " " InternetShortcut " " IconIndex " " 150 "
FlushINI " $0 "
SetFileAttributes " $0 " FILE_ATTRIBUTE_READONLY
2010-12-11 23:17:21 +01:00
FunctionEnd
2011-01-25 00:11:28 +01:00
!macro TrimStr VarName
Push ${VarName}
Call _TrimStr
Pop ${VarName}
!macroend
Function _TrimStr
Exch $R1
Push $R2
TrimLoop1 :
StrCpy $R2 " $R1 " 1
StrCmp " $R2 " " " TrimLeft
StrCmp " $R2 " " $\r " TrimLeft
StrCmp " $R2 " " $\n " TrimLeft
StrCmp " $R2 " " $\t " TrimLeft
Goto TrimLoop2
TrimLeft :
StrCpy $R1 " $R1 " " " 1
Goto TrimLoop1
TrimLoop2 :
StrCpy $R2 " $R1 " 1 - 1
StrCmp " $R2 " " " TrimRight
StrCmp " $R2 " " $\r " TrimRight
StrCmp " $R2 " " $\n " TrimRight
StrCmp " $R2 " " $\t " TrimRight
Goto TrimDone
TrimRight :
StrCpy $R1 " $R1 " - 1
Goto TrimLoop2
TrimDone :
Pop $R2
Exch $R1
FunctionEnd
!macro GetExecutableName OutVar
!insertmacro GetCommandlineParameter " Update " " LameXP.exe " ${OutVar}
!insertmacro TrimStr ${OutVar}
StrCmp ${OutVar} " " 0 + 2
StrCpy ${OutVar} " LameXP.exe "
!macroend
2010-12-11 02:05:51 +01:00
;--------------------------------
;Install Files
;--------------------------------
2011-02-16 00:11:59 +01:00
Section " -PreInit "
2011-08-08 20:26:30 +02:00
SetShellVarContext all
2011-02-16 00:11:59 +01:00
SetOutPath " $INSTDIR "
SectionEnd
2010-12-11 23:17:21 +01:00
Section " !Install Files "
!insertmacro PrintProgress " $(LAMEXP_LANG_STATUS_INSTFILES) "
2011-02-15 01:56:48 +01:00
Delete " $INSTDIR \Changelog.htm "
Delete " $INSTDIR \Changelog.html "
Delete " $INSTDIR \Contributors.txt "
Delete " $INSTDIR \FAQ.html "
Delete " $INSTDIR \Howto.html "
Delete " $INSTDIR \LameXP.exe "
Delete " $INSTDIR \LameXP.exe.sig "
Delete " $INSTDIR \License.txt "
Delete " $INSTDIR \ReadMe.txt "
Delete " $INSTDIR \Translate.html "
Delete " $INSTDIR \Uninstall.exe "
2011-01-25 00:11:28 +01:00
!insertmacro GetExecutableName $R0
File ` /oname=$R0 ` ` ${LAMEXP_SOURCE_PATH}\LameXP.exe `
File ` ${LAMEXP_SOURCE_PATH}\*.txt `
File ` ${LAMEXP_SOURCE_PATH}\*.html `
2010-12-11 02:05:51 +01:00
SectionEnd
Section " -Write Uinstaller "
2010-12-11 23:17:21 +01:00
!insertmacro PrintProgress " $(LAMEXP_LANG_STATUS_MAKEUNINST) "
2010-12-11 02:05:51 +01:00
WriteUninstaller " $INSTDIR \Uninstall.exe "
SectionEnd
Section " -Create Shortcuts "
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
2010-12-11 23:17:21 +01:00
!insertmacro PrintProgress " $(LAMEXP_LANG_STATUS_SHORTCUTS) "
2010-12-11 02:05:51 +01:00
CreateDirectory " $SMPROGRAMS \$StartMenuFolder "
2010-12-11 23:17:21 +01:00
2011-08-08 20:26:30 +02:00
SetShellVarContext current
2010-12-11 02:05:51 +01:00
Delete " $SMPROGRAMS \$StartMenuFolder\*.lnk "
Delete " $SMPROGRAMS \$StartMenuFolder\*.pif "
Delete " $SMPROGRAMS \$StartMenuFolder\*.url "
2010-12-11 23:17:21 +01:00
2011-08-08 20:26:30 +02:00
SetShellVarContext all
Delete " $SMPROGRAMS \$StartMenuFolder\*.lnk "
Delete " $SMPROGRAMS \$StartMenuFolder\*.pif "
Delete " $SMPROGRAMS \$StartMenuFolder\*.url "
2010-12-11 02:05:51 +01:00
CreateShortCut " $SMPROGRAMS \$StartMenuFolder\LameXP.lnk " " $INSTDIR \LameXP.exe " " " " $INSTDIR \LameXP.exe " 0
2011-02-14 20:10:26 +01:00
CreateShortCut " $SMPROGRAMS \$StartMenuFolder\$(LAMEXP_LANG_LINK_LICENSE).lnk " " $INSTDIR \License.txt "
CreateShortCut " $SMPROGRAMS \$StartMenuFolder\$(LAMEXP_LANG_LINK_CHANGELOG).lnk " " $INSTDIR \Changelog.html "
CreateShortCut " $SMPROGRAMS \$StartMenuFolder\$(LAMEXP_LANG_LINK_TRANSLATE).lnk " " $INSTDIR \Translate.html "
2011-02-14 23:37:48 +01:00
CreateShortCut " $SMPROGRAMS \$StartMenuFolder\$(LAMEXP_LANG_LINK_FAQ).lnk " " $INSTDIR \FAQ.html "
2011-02-14 20:10:26 +01:00
CreateShortCut " $SMPROGRAMS \$StartMenuFolder\$(LAMEXP_LANG_LINK_UNINSTALL).lnk " " $INSTDIR \Uninstall.exe " " " " $INSTDIR \Uninstall.exe " 0
2010-12-11 23:17:21 +01:00
!insertmacro CreateWebLink " $SMPROGRAMS \$StartMenuFolder\Official LameXP Homepage.url " " http://mulder.dummwiedeutsch.de/ "
2011-02-14 23:37:48 +01:00
!insertmacro CreateWebLink " $SMPROGRAMS \$StartMenuFolder\Doom9's Forum.url " " http://forum.doom9.org/ "
2010-12-11 23:17:21 +01:00
!insertmacro CreateWebLink " $SMPROGRAMS \$StartMenuFolder\RareWares.org.url " " http://rarewares.org/ "
!insertmacro CreateWebLink " $SMPROGRAMS \$StartMenuFolder\Hydrogenaudio Forums.url " " http://www.hydrogenaudio.org/ "
2010-12-11 02:05:51 +01:00
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
Section " -Update Registry "
2010-12-11 23:17:21 +01:00
!insertmacro PrintProgress " $(LAMEXP_LANG_STATUS_REGISTRY) "
2010-12-11 02:05:51 +01:00
WriteRegStr HKLM " ${MyRegPath} " " InstallLocation " " $INSTDIR "
WriteRegStr HKLM " ${MyRegPath} " " UninstallString " '"$INSTDIR\Uninstall.exe"'
WriteRegStr HKLM " ${MyRegPath} " " DisplayName " " LameXP "
SectionEnd
2011-01-25 00:11:28 +01:00
Section " -Finished "
2010-12-11 02:05:51 +01:00
!insertmacro PrintProgress " $(MUI_TEXT_FINISH_TITLE). "
2011-02-01 22:15:57 +01:00
; ---- POLL ----
2011-02-21 13:25:02 +01:00
; !insertmacro UAC_AsUser_ExecShell "" "http://mulder.brhack.net/temp/style_poll/" "" "" SW_SHOWNORMAL
2011-02-01 22:15:57 +01:00
; ---- POLL ----
2010-12-11 02:05:51 +01:00
SectionEnd
;--------------------------------
;Uninstaller
;--------------------------------
Section " Uninstall "
2010-12-12 21:43:59 +01:00
SetOutPath " $INSTDIR "
2010-12-11 23:17:21 +01:00
!insertmacro PrintProgress " $(LAMEXP_LANG_STATUS_UNINSTALL) "
2010-12-11 02:05:51 +01:00
2011-02-23 02:52:44 +01:00
Delete /REBOOTOK " $INSTDIR \LameXP.exe "
Delete /REBOOTOK " $INSTDIR \LameXP-Portable.exe "
2011-02-21 17:28:01 +01:00
Delete /REBOOTOK " $INSTDIR \LameXP.exe.sig "
2011-02-23 02:52:44 +01:00
Delete /REBOOTOK " $INSTDIR \Uninstall.exe "
2011-02-21 17:28:01 +01:00
Delete /REBOOTOK " $INSTDIR \Changelog.htm "
2011-02-23 02:52:44 +01:00
Delete /REBOOTOK " $INSTDIR \Changelog.html "
Delete /REBOOTOK " $INSTDIR \Translate.html "
Delete /REBOOTOK " $INSTDIR \FAQ.html "
2011-02-21 17:28:01 +01:00
Delete /REBOOTOK " $INSTDIR \Howto.html "
2011-02-23 02:52:44 +01:00
Delete /REBOOTOK " $INSTDIR \License.txt "
2011-02-21 17:28:01 +01:00
Delete /REBOOTOK " $INSTDIR \Contributors.txt "
2011-02-23 02:52:44 +01:00
Delete /REBOOTOK " $INSTDIR \ReadMe.txt "
2011-02-21 17:28:01 +01:00
2010-12-11 02:05:51 +01:00
RMDir " $INSTDIR "
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenu Folder
2010-12-12 19:25:06 +01:00
StrCmp " $StartMenu Folder " " " NoStartmenuFolder
2010-12-11 02:05:51 +01:00
IfFileExists " $SMPROGRAMS \$StartMenuFolder\*.* " 0 NoStartmenuFolder
Delete /REBOOTOK " $SMPROGRAMS \$StartMenuFolder\*.lnk "
Delete /REBOOTOK " $SMPROGRAMS \$StartMenuFolder\*.url "
RMDir " $SMPROGRAMS \$StartMenuFolder "
NoStartmenuFolder :
DeleteRegValue HKLM " ${MyRegPath} " " InstallLocation "
DeleteRegValue HKLM " ${MyRegPath} " " UninstallString "
DeleteRegValue HKLM " ${MyRegPath} " " DisplayName "
DeleteRegValue HKLM " ${MyRegPath} " " StartmenuFolder "
2010-12-12 19:25:06 +01:00
DeleteRegValue HKLM " ${MyRegPath} " " SetupLanguage "
2010-12-11 02:05:51 +01:00
2011-02-14 20:10:26 +01:00
MessageBox MB_YESNO | MB_TOPMOST " $(LAMEXP_LANG_UNINST_PERSONAL) " IDNO + 3
2010-12-19 00:50:22 +01:00
Delete " $LOCALAPPDATA \LoRd_MuldeR\LameXP - Audio Encoder Front-End\config.ini "
2011-02-14 20:10:26 +01:00
Delete " $INSTDIR \*.ini "
2010-12-19 00:50:22 +01:00
2010-12-11 02:05:51 +01:00
!insertmacro PrintProgress " $(MUI_UNTEXT_FINISH_TITLE). "
SectionEnd
;--------------------------------
;Check For Update Mode
;--------------------------------
2010-11-29 14:00:27 +01:00
Function CheckForUpdate
2011-01-25 00:11:28 +01:00
!insertmacro GetCommandlineParameter " Update " " ? " $R0
StrCmp $R0 " ? " 0 EnableUpdateMode
2011-01-14 19:45:14 +01:00
StrCmp " $INSTDIR " " " 0 + 2
Return
IfFileExists " $INSTDIR \*.* " + 2
Return
2011-01-22 22:19:20 +01:00
StrCmp " $EXEDIR " " $INSTDIR " 0 + 2
Return
IfFileExists " $INSTDIR \LameXP.exe " + 2
2010-11-29 14:00:27 +01:00
Return
2010-12-11 02:05:51 +01:00
EnableUpdateMode :
2010-11-29 14:00:27 +01:00
FindWindow $R0 " #32770 " " " $HWNDPARENT
GetDlgItem $R1 $R0 1019
2010-12-11 02:05:51 +01:00
EnableWindow $R1 0
2010-11-29 14:00:27 +01:00
FindWindow $R0 " #32770 " " " $HWNDPARENT
GetDlgItem $R1 $R0 1001
EnableWindow $R1 0
FunctionEnd
2010-11-29 21:42:39 +01:00
2010-12-11 02:05:51 +01:00
2011-08-27 16:24:03 +02:00
;--------------------------------
;Check For Pre-Release
;--------------------------------
Function CheckForPreRelease
!ifdef LAMEXP_IS_PRERELEASE
!insertmacro GetCommandlineParameter " Update " " ? " $R0
StrCmp $R0 " ? " 0 SkipPrereleaseWarning
MessageBox MB_TOPMOST | MB_ICONEXCLAMATION | MB_OKCANCEL " $(LAMEXP_LANG_PRERELEASE_WARNING) " /SD IDOK IDOK + 2
Quit
SkipPrereleaseWarning :
!endif
FunctionEnd
2010-12-11 02:05:51 +01:00
;--------------------------------
2010-12-12 21:43:59 +01:00
;Locked List
2010-12-11 02:05:51 +01:00
;--------------------------------
2010-12-12 21:43:59 +01:00
Function LockedListShow
2010-12-22 21:09:33 +01:00
!insertmacro MUI_HEADER_TEXT " $(LAMEXP_LANG_LOCKEDLIST_HEADER) " " $(LAMEXP_LANG_LOCKEDLIST_TEXT) "
2011-02-07 22:07:24 +01:00
!insertmacro GetExecutableName $R0
LockedList :: AddModule " \$R0 "
LockedList :: AddModule " \Uninstall.exe "
LockedList :: AddModule " \Au_.exe "
2010-12-27 01:50:22 +01:00
LockedList :: Dialog /autonext /heading " $(LAMEXP_LANG_LOCKEDLIST_HEADING) " /noprograms " $(LAMEXP_LANG_LOCKEDLIST_NOPROG) " /searching " $(LAMEXP_LANG_LOCKEDLIST_SEARCH) " /colheadings " $(LAMEXP_LANG_LOCKEDLIST_COLHDR1) " " $(LAMEXP_LANG_LOCKEDLIST_COLHDR2) "
2010-12-22 21:09:33 +01:00
Pop $R0
2010-11-29 21:42:39 +01:00
FunctionEnd
2010-12-11 02:05:51 +01:00
2010-12-12 21:43:59 +01:00
Function un.LockedListShow
2010-12-22 21:09:33 +01:00
!insertmacro MUI_HEADER_TEXT " $(LAMEXP_LANG_LOCKEDLIST_HEADER) " " $(LAMEXP_LANG_LOCKEDLIST_TEXT) "
2011-02-07 22:07:24 +01:00
LockedList :: AddModule " \LameXP.exe "
LockedList :: AddModule " \Uninstall.exe "
2010-12-27 01:50:22 +01:00
LockedList :: Dialog /autonext /heading " $(LAMEXP_LANG_LOCKEDLIST_HEADING) " /noprograms " $(LAMEXP_LANG_LOCKEDLIST_NOPROG) " /searching " $(LAMEXP_LANG_LOCKEDLIST_SEARCH) " /colheadings " $(LAMEXP_LANG_LOCKEDLIST_COLHDR1) " " $(LAMEXP_LANG_LOCKEDLIST_COLHDR2) "
2010-12-22 21:09:33 +01:00
Pop $R0
2010-12-11 23:17:21 +01:00
FunctionEnd
;--------------------------------
2010-12-12 21:43:59 +01:00
;Install Success
2010-12-11 23:17:21 +01:00
;--------------------------------
2010-12-12 21:43:59 +01:00
Function RunAppFunction
2011-01-25 00:11:28 +01:00
!insertmacro GetExecutableName $R0
2010-12-12 21:43:59 +01:00
!insertmacro UAC_AsUser_ExecShell " explore " " $INSTDIR " " " " " SW_SHOWNORMAL
2011-09-19 18:52:02 +02:00
!insertmacro UAC_AsUser_ExecShell " open " " $INSTDIR \$R0 " " --first-run " " $INSTDIR " SW_SHOWNORMAL
2010-12-11 23:17:21 +01:00
FunctionEnd
2010-12-12 19:25:06 +01:00
2010-12-12 21:43:59 +01:00
Function ShowReadmeFunction
2011-02-16 00:11:59 +01:00
!insertmacro UAC_AsUser_ExecShell " open " " $INSTDIR \FAQ.html " " " " " SW_SHOWNORMAL
2010-12-12 19:25:06 +01:00
FunctionEnd