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 "0.9.5"
\r
12 !define PRODUCT_VERSION_NUMBER "0.9.5"
\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 "HandBrake.Framework.dll"
\r
139 File "Microsoft.WindowsAPICodePack.Shell.dll"
\r
140 File "Microsoft.WindowsAPICodePack.dll"
\r
142 File "Caliburn.Castle.dll"
\r
143 File "Caliburn.Core.dll"
\r
144 File "Castle.Core.dll"
\r
145 File "Castle.DynamicProxy2.dll"
\r
146 File "Castle.MicroKernel.dll"
\r
147 File "Castle.Windsor.dll"
\r
148 File "Microsoft.Practices.ServiceLocation.dll"
\r
150 SetOutPath "$INSTDIR\doc"
\r
151 SetOverwrite ifnewer
\r
157 File "doc\TRANSLATIONS"
\r
160 Section -AdditionalIcons
\r
161 CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
\r
165 WriteUninstaller "$INSTDIR\uninst.exe"
\r
166 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"
\r
167 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
\r
168 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
\r
169 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"
\r
170 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
\r
173 Function un.onUninstSuccess
\r
175 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
\r
179 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
\r
184 Delete "$INSTDIR\uninst.exe"
\r
186 Delete "$INSTDIR\Interop.QTOLibrary.dll"
\r
187 Delete "$INSTDIR\Interop.QTOControlLib.dll"
\r
188 Delete "$INSTDIR\AxInterop.QTOControlLib.dll"
\r
189 Delete "$INSTDIR\HandBrakeCLI.exe"
\r
190 Delete "$INSTDIR\handbrakepineapple.ico"
\r
191 Delete "$INSTDIR\Handbrake.exe"
\r
192 Delete "$INSTDIR\Handbrake.exe.config"
\r
193 Delete "$INSTDIR\Growl.Connector.dll"
\r
194 Delete "$INSTDIR\Growl.CoreLibrary.dll"
\r
195 Delete "$INSTDIR\libgcc_s_sjlj-1.dll"
\r
196 Delete "$INSTDIR\HandBrake.ApplicationServices.dll"
\r
197 Delete "$INSTDIR\HandBrake.Framework.dll"
\r
198 Delete "$INSTDIR\Microsoft.WindowsAPICodePack.Shell.dll"
\r
199 Delete "$INSTDIR\Microsoft.WindowsAPICodePack.dll"
\r
201 Delete "$INSTDIR\Caliburn.Castle.dll"
\r
202 Delete "$INSTDIR\Caliburn.Core.dll"
\r
203 Delete "$INSTDIR\Castle.Core.dll"
\r
204 Delete "$INSTDIR\Castle.DynamicProxy2.dll"
\r
205 Delete "$INSTDIR\Castle.MicroKernel.dll"
\r
206 Delete "$INSTDIR\Castle.Windsor.dll"
\r
207 Delete "$INSTDIR\Microsoft.Practices.ServiceLocation.dll"
\r
209 Delete "$INSTDIR\doc\AUTHORS"
\r
210 Delete "$INSTDIR\doc\COPYING"
\r
211 Delete "$INSTDIR\doc\CREDITS"
\r
212 Delete "$INSTDIR\doc\NEWS"
\r
213 Delete "$INSTDIR\doc\THANKS"
\r
214 Delete "$INSTDIR\doc\TRANSLATIONS"
\r
216 Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"
\r
217 Delete "$DESKTOP\Handbrake.lnk"
\r
218 Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"
\r
219 RMDir "$SMPROGRAMS\Handbrake"
\r
222 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
223 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
227 ;Check for .NET framework
\r
228 Function CheckFrameWork
\r
230 ;Save the variables in case something else is using them
\r
253 ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"
\r
254 EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
\r
255 StrCmp $1 "" done ;jump to end if no more registry keys
\r
257 StrCpy $2 $1 1 ;Cut off the first character
\r
258 StrCpy $3 $1 "" 1 ;Remainder of string
\r
260 ;Loop if first character is not a 'v'
\r
261 StrCmpS $2 "v" start_parse loop
\r
273 StrCmp $3 "" parse_done ;If string is empty, we are finished
\r
274 StrCpy $2 $3 1 ;Cut off the first character
\r
275 StrCpy $3 $3 "" 1 ;Remainder of string
\r
276 StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot
\r
279 IntOp $4 $4 + 1 ; Move to the next section
\r
280 goto parse ;Carry on parsing
\r
283 IntCmp $4 1 major_ver
\r
284 IntCmp $4 2 minor_ver
\r
285 IntCmp $4 3 build_ver
\r
286 IntCmp $4 4 parse_done
\r
290 goto parse ;Carry on parsing
\r
294 goto parse ;Carry on parsing
\r
298 goto parse ;Carry on parsing
\r
302 IntCmp $R1 $R5 this_major_same loop this_major_more
\r
312 IntCmp $R2 $R6 this_minor_same loop this_minor_more
\r
320 IntCmp $R3 $R7 loop loop this_build_more
\r
328 ;Have we got the framework we need?
\r
329 IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK
\r
331 IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK
\r
333 IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK
\r
335 ;Version on machine is greater than what we need
\r
341 StrCmp $R8 "0.0.0" end
\r
346 ;Pop the variables we pushed earlier
\r