1 /* Resources.Designer.cs $
\r
3 This file is part of the HandBrake source code.
\r
4 Homepage: <http://handbrake.fr/>.
\r
5 It may be used under the terms of the GNU General Public License. */
\r
7 ; Script generated by the HM NIS Edit Script Wizard.
\r
9 ; HM NIS Edit Wizard helper defines
\r
10 !define PRODUCT_NAME "Handbrake"
\r
11 !define PRODUCT_VERSION "SVN 3191 Snapshot"
\r
12 !define PRODUCT_VERSION_NUMBER "svn3191"
\r
13 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"
\r
14 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
15 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
\r
17 ;Required .NET framework
\r
18 !define MIN_FRA_MAJOR "3"
\r
19 !define MIN_FRA_MINOR "5"
\r
20 !define MIN_FRA_BUILD "*"
\r
24 ; MUI 1.67 compatible ------
\r
28 !define MUI_ABORTWARNING
\r
29 !define MUI_ICON "handbrakepineapple.ico"
\r
30 !define MUI_UNICON "handbrakepineapple.ico"
\r
33 !insertmacro MUI_PAGE_WELCOME
\r
35 !insertmacro MUI_PAGE_LICENSE "doc\COPYING"
\r
37 !insertmacro MUI_PAGE_DIRECTORY
\r
39 !insertmacro MUI_PAGE_INSTFILES
\r
41 !define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"
\r
42 !insertmacro MUI_PAGE_FINISH
\r
45 !insertmacro MUI_UNPAGE_INSTFILES
\r
48 !insertmacro MUI_LANGUAGE "English"
\r
52 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
53 OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}-Win_GUI.exe"
\r
55 !include WordFunc.nsh
\r
56 !insertmacro VersionCompare
\r
57 !include LogicLib.nsh
\r
59 InstallDir "$PROGRAMFILES\Handbrake"
\r
60 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
61 ShowInstDetails show
\r
62 ShowUnInstDetails show
\r
68 ; Begin Only allow one version
\r
69 System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
\r
73 MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running."
\r
76 ;Remove previous version
\r
77 ReadRegStr $R0 HKLM \
\r
78 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \
\r
82 MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
\r
83 "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
\r
84 previous version or `Cancel` to continue." \
\r
88 ;Run the uninstaller
\r
90 Exec $INSTDIR\uninst.exe
\r
95 Section "Handbrake" SEC01
\r
96 SetOutPath "$INSTDIR"
\r
97 SetOverwrite ifnewer
\r
99 ; Begin Check .NET version
\r
100 StrCpy $InstallDotNET "No"
\r
101 Call CheckFramework
\r
103 StrCpy $InstallDotNET "Yes"
\r
104 MessageBox MB_OK|MB_ICONINFORMATION "${PRODUCT_NAME} requires that the .NET Framework 3.5 SP1 is installed. The latest .NET Framework will be downloaded and installed automatically during installation of ${PRODUCT_NAME}."
\r
107 ; Get .NET if required
\r
108 ${If} $InstallDotNET == "Yes"
\r
109 SetDetailsView hide
\r
110 inetc::get /caption "Downloading .NET Framework 3.5" /canceltext "Cancel" "http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=ab99342f-5d1a-413d-8319-81da479ab0d7&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f0%2f6%2f1%2f061f001c-8752-4600-a198-53214c69b51f%2fdotnetfx35setup.exe" "$INSTDIR\dotnetfx.exe" /end
\r
114 Delete "$INSTDIR\dotnetfx.exe"
\r
115 Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 3.5 Framework"
\r
118 ExecWait "$INSTDIR\dotnetfx.exe"
\r
119 Delete "$INSTDIR\dotnetfx.exe"
\r
121 SetDetailsView show
\r
125 File "Handbrake.exe"
\r
126 CreateDirectory "$SMPROGRAMS\Handbrake"
\r
127 CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
\r
128 CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
\r
129 File "Interop.QTOLibrary.dll"
\r
130 File "Interop.QTOControlLib.dll"
\r
131 File "AxInterop.QTOControlLib.dll"
\r
132 File "Growl.Connector.dll"
\r
133 File "Growl.CoreLibrary.dll"
\r
134 File "HandBrakeCLI.exe"
\r
135 File "Handbrake.exe.config"
\r
136 File "handbrakepineapple.ico"
\r
137 File "HandBrake.ApplicationServices.dll"
\r
138 File "Microsoft.WindowsAPICodePack.Shell.dll"
\r
139 File "Microsoft.WindowsAPICodePack.dll"
\r
141 SetOutPath "$INSTDIR\doc"
\r
142 SetOverwrite ifnewer
\r
148 File "doc\TRANSLATIONS"
\r
151 Section -AdditionalIcons
\r
152 CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
\r
156 WriteUninstaller "$INSTDIR\uninst.exe"
\r
157 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"
\r
158 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
\r
159 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
\r
160 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"
\r
161 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
\r
164 Function un.onUninstSuccess
\r
166 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
\r
170 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
\r
175 Delete "$INSTDIR\uninst.exe"
\r
177 Delete "$INSTDIR\Interop.QTOLibrary.dll"
\r
178 Delete "$INSTDIR\Interop.QTOControlLib.dll"
\r
179 Delete "$INSTDIR\AxInterop.QTOControlLib.dll"
\r
180 Delete "$INSTDIR\HandBrakeCLI.exe"
\r
181 Delete "$INSTDIR\handbrakepineapple.ico"
\r
182 Delete "$INSTDIR\Handbrake.exe"
\r
183 Delete "$INSTDIR\Handbrake.exe.config"
\r
184 Delete "$INSTDIR\Growl.Connector.dll"
\r
185 Delete "$INSTDIR\Growl.CoreLibrary.dll"
\r
186 Delete "$INSTDIR\libgcc_s_sjlj-1.dll"
\r
187 Delete "$INSTDIR\HandBrake.ApplicationServices.dll"
\r
188 Delete "$INSTDIR\Microsoft.WindowsAPICodePack.Shell.dll"
\r
189 Delete "$INSTDIR\Microsoft.WindowsAPICodePack.dll"
\r
190 Delete "$INSTDIR\doc\AUTHORS"
\r
191 Delete "$INSTDIR\doc\COPYING"
\r
192 Delete "$INSTDIR\doc\CREDITS"
\r
193 Delete "$INSTDIR\doc\NEWS"
\r
194 Delete "$INSTDIR\doc\THANKS"
\r
195 Delete "$INSTDIR\doc\TRANSLATIONS"
\r
197 Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"
\r
198 Delete "$DESKTOP\Handbrake.lnk"
\r
199 Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"
\r
200 RMDir "$SMPROGRAMS\Handbrake"
\r
203 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
204 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
208 ;Check for .NET framework
\r
209 Function CheckFrameWork
\r
211 ;Save the variables in case something else is using them
\r
234 ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"
\r
235 EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
\r
236 StrCmp $1 "" done ;jump to end if no more registry keys
\r
238 StrCpy $2 $1 1 ;Cut off the first character
\r
239 StrCpy $3 $1 "" 1 ;Remainder of string
\r
241 ;Loop if first character is not a 'v'
\r
242 StrCmpS $2 "v" start_parse loop
\r
254 StrCmp $3 "" parse_done ;If string is empty, we are finished
\r
255 StrCpy $2 $3 1 ;Cut off the first character
\r
256 StrCpy $3 $3 "" 1 ;Remainder of string
\r
257 StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot
\r
260 IntOp $4 $4 + 1 ; Move to the next section
\r
261 goto parse ;Carry on parsing
\r
264 IntCmp $4 1 major_ver
\r
265 IntCmp $4 2 minor_ver
\r
266 IntCmp $4 3 build_ver
\r
267 IntCmp $4 4 parse_done
\r
271 goto parse ;Carry on parsing
\r
275 goto parse ;Carry on parsing
\r
279 goto parse ;Carry on parsing
\r
283 IntCmp $R1 $R5 this_major_same loop this_major_more
\r
293 IntCmp $R2 $R6 this_minor_same loop this_minor_more
\r
301 IntCmp $R3 $R7 loop loop this_build_more
\r
309 ;Have we got the framework we need?
\r
310 IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK
\r
312 IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK
\r
314 IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK
\r
316 ;Version on machine is greater than what we need
\r
322 StrCmp $R8 "0.0.0" end
\r
327 ;Pop the variables we pushed earlier
\r