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 "$WCREV$ Nightly"
\r
12 !define PRODUCT_VERSION_NUMBER "svn$WCREV$"
\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
94 Section "Handbrake" SEC01
\r
95 SetOutPath "$INSTDIR"
\r
96 SetOverwrite ifnewer
\r
98 ; Begin Check .NET version
\r
99 StrCpy $InstallDotNET "No"
\r
100 Call CheckFramework
\r
102 StrCpy $InstallDotNET "Yes"
\r
103 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
106 ; Get .NET if required
\r
107 ${If} $InstallDotNET == "Yes"
\r
108 SetDetailsView hide
\r
109 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
113 Delete "$INSTDIR\dotnetfx.exe"
\r
114 Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 3.5 Framework"
\r
117 ExecWait "$INSTDIR\dotnetfx.exe"
\r
118 Delete "$INSTDIR\dotnetfx.exe"
\r
120 SetDetailsView show
\r
124 File "Handbrake.exe"
\r
125 CreateDirectory "$SMPROGRAMS\Handbrake"
\r
126 CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
\r
127 CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
\r
128 File "Interop.QTOLibrary.dll"
\r
129 File "Interop.QTOControlLib.dll"
\r
130 File "AxInterop.QTOControlLib.dll"
\r
131 File "Growl.Connector.dll"
\r
132 File "Growl.CoreLibrary.dll"
\r
133 File "Handbrake.exe.config"
\r
134 File "HandBrake.ApplicationServices.dll"
\r
135 File "Microsoft.WindowsAPICodePack.Shell.dll"
\r
136 File "Microsoft.WindowsAPICodePack.dll"
\r
139 Section -AdditionalIcons
\r
140 CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
\r
144 WriteUninstaller "$INSTDIR\uninst.exe"
\r
145 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"
\r
146 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
\r
147 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
\r
148 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"
\r
149 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
\r
153 Function un.onUninstSuccess
\r
155 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
\r
159 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
\r
164 Delete "$INSTDIR\uninst.exe"
\r
166 Delete "$INSTDIR\Interop.QTOLibrary.dll"
\r
167 Delete "$INSTDIR\Interop.QTOControlLib.dll"
\r
168 Delete "$INSTDIR\AxInterop.QTOControlLib.dll"
\r
169 Delete "$INSTDIR\Handbrake.exe"
\r
170 Delete "$INSTDIR\Handbrake.exe.config"
\r
171 Delete "$INSTDIR\Growl.Connector.dll"
\r
172 Delete "$INSTDIR\Growl.CoreLibrary.dll"
\r
173 Delete "$INSTDIR\HandBrake.ApplicationServices.dll"
\r
174 Delete "$INSTDIR\Microsoft.WindowsAPICodePack.Shell.dll"
\r
175 Delete "$INSTDIR\Microsoft.WindowsAPICodePack.dll"
\r
177 Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"
\r
178 Delete "$DESKTOP\Handbrake.lnk"
\r
179 Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"
\r
180 RMDir "$SMPROGRAMS\Handbrake"
\r
183 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
184 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
188 ;Check for .NET framework
\r
189 Function CheckFrameWork
\r
191 ;Save the variables in case something else is using them
\r
214 ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"
\r
215 EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
\r
216 StrCmp $1 "" done ;jump to end if no more registry keys
\r
218 StrCpy $2 $1 1 ;Cut off the first character
\r
219 StrCpy $3 $1 "" 1 ;Remainder of string
\r
221 ;Loop if first character is not a 'v'
\r
222 StrCmpS $2 "v" start_parse loop
\r
234 StrCmp $3 "" parse_done ;If string is empty, we are finished
\r
235 StrCpy $2 $3 1 ;Cut off the first character
\r
236 StrCpy $3 $3 "" 1 ;Remainder of string
\r
237 StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot
\r
240 IntOp $4 $4 + 1 ; Move to the next section
\r
241 goto parse ;Carry on parsing
\r
244 IntCmp $4 1 major_ver
\r
245 IntCmp $4 2 minor_ver
\r
246 IntCmp $4 3 build_ver
\r
247 IntCmp $4 4 parse_done
\r
251 goto parse ;Carry on parsing
\r
255 goto parse ;Carry on parsing
\r
259 goto parse ;Carry on parsing
\r
263 IntCmp $R1 $R5 this_major_same loop this_major_more
\r
273 IntCmp $R2 $R6 this_minor_same loop this_minor_more
\r
281 IntCmp $R3 $R7 loop loop this_build_more
\r
289 ;Have we got the framework we need?
\r
290 IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK
\r
292 IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK
\r
294 IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK
\r
296 ;Version on machine is greater than what we need
\r
302 StrCmp $R8 "0.0.0" end
\r
307 ;Pop the variables we pushed earlier
\r