1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
2 ; NSIS installer script for vlc ;
\r
3 ; (http://nsis.sourceforge.net) ;
\r
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
6 !define PRODUCT_NAME "VLC media player"
\r
7 !define PRODUCT_VERSION '${VERSION}'
\r
8 !define PRODUCT_GROUP "VideoLAN"
\r
9 !define PRODUCT_PUBLISHER "VideoLAN Team"
\r
10 !define PRODUCT_WEB_SITE "http://www.videolan.org"
\r
11 !define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC"
\r
12 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
13 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
\r
14 !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"
\r
16 !define MUI_LANGDLL_REGISTRY_ROOT "HKLM"
\r
17 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}"
\r
18 !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
\r
21 @FILE_LIBVLC_CONTROL_DLL@
\r
23 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
24 ; General configuration ;
\r
25 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
27 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
28 OutFile ..\vlc-${VERSION}-win32.exe
\r
29 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
30 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
31 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
34 SetCompressor /SOLID lzma
\r
36 ;ShowInstDetails show
\r
37 ;ShowUnInstDetails show
\r
38 SetOverwrite ifnewer
\r
40 BrandingText "${PRODUCT_GROUP} ${PRODUCT_NAME}"
\r
42 InstType "Recommended"
\r
46 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
47 ; NSIS Modern User Interface configuration ;
\r
48 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
50 ; MUI 1.67 compatible ------
\r
54 !define MUI_ABORTWARNING
\r
55 !define MUI_ICON "vlc48x48.ico"
\r
56 !define MUI_UNICON "vlc48x48.ico"
\r
57 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
61 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
62 !insertmacro MUI_PAGE_WELCOME
\r
64 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
66 !insertmacro MUI_PAGE_COMPONENTS
\r
68 !insertmacro MUI_PAGE_DIRECTORY
\r
70 !insertmacro MUI_PAGE_INSTFILES
\r
72 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
73 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
74 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
75 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
76 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
77 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
78 !insertmacro MUI_PAGE_FINISH
\r
81 !insertmacro MUI_UNPAGE_CONFIRM
\r
82 !insertmacro MUI_UNPAGE_COMPONENTS
\r
83 !insertmacro MUI_UNPAGE_INSTFILES
\r
84 !insertmacro MUI_UNPAGE_FINISH
\r
87 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
88 !insertmacro MUI_LANGUAGE "French"
\r
89 !insertmacro MUI_LANGUAGE "German"
\r
90 !insertmacro MUI_LANGUAGE "Spanish"
\r
91 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
92 !insertmacro MUI_LANGUAGE "TradChinese"
\r
93 !insertmacro MUI_LANGUAGE "Japanese"
\r
94 !insertmacro MUI_LANGUAGE "Korean"
\r
95 !insertmacro MUI_LANGUAGE "Italian"
\r
96 !insertmacro MUI_LANGUAGE "Dutch"
\r
97 !insertmacro MUI_LANGUAGE "Danish"
\r
98 !insertmacro MUI_LANGUAGE "Swedish"
\r
99 !insertmacro MUI_LANGUAGE "Norwegian"
\r
100 !insertmacro MUI_LANGUAGE "Finnish"
\r
101 !insertmacro MUI_LANGUAGE "Greek"
\r
102 !insertmacro MUI_LANGUAGE "Russian"
\r
103 !insertmacro MUI_LANGUAGE "Portuguese"
\r
104 !insertmacro MUI_LANGUAGE "Arabic"
\r
105 !insertmacro MUI_LANGUAGE "Polish"
\r
106 !insertmacro MUI_LANGUAGE "Romanian"
\r
107 !insertmacro MUI_LANGUAGE "Slovak"
\r
108 !insertmacro MUI_LANGUAGE "Czech"
\r
110 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
113 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
117 ;;;;;;;;;;;;;;;;;;;
\r
118 ; Extension lists ;
\r
119 ;;;;;;;;;;;;;;;;;;;
\r
121 !macro MacroAudioExtensions _action
\r
122 !insertmacro ${_action} ".a52"
\r
123 !insertmacro ${_action} ".aac"
\r
124 !insertmacro ${_action} ".ac3"
\r
125 !insertmacro ${_action} ".dts"
\r
126 !insertmacro ${_action} ".flac"
\r
127 !insertmacro ${_action} ".mka"
\r
128 !insertmacro ${_action} ".mp1"
\r
129 !insertmacro ${_action} ".mp2"
\r
130 !insertmacro ${_action} ".mp3"
\r
131 !insertmacro ${_action} ".ogg"
\r
132 !insertmacro ${_action} ".spx"
\r
133 !insertmacro ${_action} ".wav"
\r
134 !insertmacro ${_action} ".wma"
\r
137 !macro MacroVideoExtensions _action
\r
138 !insertmacro ${_action} ".asf"
\r
139 !insertmacro ${_action} ".avi"
\r
140 !insertmacro ${_action} ".divx"
\r
141 !insertmacro ${_action} ".dv"
\r
142 !insertmacro ${_action} ".m1v"
\r
143 !insertmacro ${_action} ".m2v"
\r
144 !insertmacro ${_action} ".mkv"
\r
145 !insertmacro ${_action} ".mov"
\r
146 !insertmacro ${_action} ".mp4"
\r
147 !insertmacro ${_action} ".mpeg"
\r
148 !insertmacro ${_action} ".mpeg1"
\r
149 !insertmacro ${_action} ".mpeg2"
\r
150 !insertmacro ${_action} ".mpeg4"
\r
151 !insertmacro ${_action} ".mpg"
\r
152 !insertmacro ${_action} ".mxf"
\r
153 !insertmacro ${_action} ".ps"
\r
154 !insertmacro ${_action} ".ts"
\r
155 !insertmacro ${_action} ".ogm"
\r
156 !insertmacro ${_action} ".vob"
\r
157 !insertmacro ${_action} ".wmv"
\r
160 !macro MacroOtherExtensions _action
\r
161 !insertmacro ${_action} ".asx"
\r
162 !insertmacro ${_action} ".bin"
\r
163 !insertmacro ${_action} ".cue"
\r
164 !insertmacro ${_action} ".m3u"
\r
165 !insertmacro ${_action} ".pls"
\r
166 !insertmacro ${_action} ".vlc"
\r
169 !macro MacroAllExtensions _action
\r
170 !insertmacro MacroAudioExtensions ${_action}
\r
171 !insertmacro MacroVideoExtensions ${_action}
\r
172 !insertmacro MacroOtherExtensions ${_action}
\r
175 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
176 ; File type associations ;
\r
177 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
179 Function RegisterExtension
\r
180 ; back up old value for extension $R0 (eg. ".opt")
\r
181 ReadRegStr $1 HKCR "$R0" ""
\r
182 StrCmp $1 "" NoBackup
\r
183 StrCmp $1 "VLC$R0" "NoBackup"
\r
184 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
186 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
187 ReadRegStr $0 HKCR "VLC$R0" ""
\r
188 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
189 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
190 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
191 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
194 ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
\r
196 StrCmp $R2 '6.0' ForVista ToEnd
\r
198 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
\r
203 Function un.RegisterExtension
\r
204 ;start of restore script
\r
205 ReadRegStr $1 HKCR "$R0" ""
\r
206 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
207 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
208 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
209 DeleteRegKey HKCR "$R0"
\r
212 WriteRegStr HKCR "$R0" "" $1
\r
213 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
215 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
218 !macro RegisterExtensionSection EXT
\r
223 Call RegisterExtension
\r
228 !macro UnRegisterExtensionSection EXT
\r
231 Call un.RegisterExtension
\r
235 !macro WriteRegStrSupportedTypes EXT
\r
236 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
239 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
240 ; Context menu entries ;
\r
241 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
243 !macro AddContextMenuExt EXT
\r
244 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
245 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
247 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
248 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
251 !macro AddContextMenu EXT
\r
253 ReadRegStr $R0 HKCR ${EXT} ""
\r
254 !insertmacro AddContextMenuExt $R0
\r
258 !macro DeleteContextMenuExt EXT
\r
259 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
260 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
263 !macro DeleteContextMenu EXT
\r
265 ReadRegStr $R0 HKCR ${EXT} ""
\r
266 !insertmacro DeleteContextMenuExt $R0
\r
270 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
271 ; Delete prefs and cache ;
\r
272 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
276 !define Index 'Line${__LINE__}'
\r
279 ; this will loop through all the logged users and "virtual" windows users
\r
280 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
282 EnumRegKey $1 HKU "" $0
\r
283 StrCmp $1 "" "${Index}-End"
\r
285 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
286 StrCmp $2 "" "${Index}-Loop"
\r
288 Goto "${Index}-Loop"
\r
295 !macro OpenUninstallLog
\r
296 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
297 FileSeek $UninstallLog 0 END
\r
300 !macro CloseUninstallLog
\r
301 FileClose $UninstallLog
\r
302 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
305 !macro InstallFile FILEREGEX
\r
306 File "${FILEREGEX}"
\r
307 !define Index 'Line${__LINE__}'
\r
308 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
309 StrCmp $0 "" "${Index}-End"
\r
311 StrCmp $1 "" "${Index}-End"
\r
312 FileWrite $UninstallLog "$1$\r$\n"
\r
314 Goto "${Index}-Loop"
\r
319 !macro InstallFolder FOLDER
\r
320 File /r "${FOLDER}"
\r
322 Call InstallFolderInternal
\r
325 Function InstallFolderInternal
\r
327 !define Index 'Line${__LINE__}'
\r
328 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
329 StrCmp $0 "" "${Index}-End"
\r
331 StrCmp $1 "" "${Index}-End"
\r
332 StrCmp $1 "." "${Index}-Next"
\r
333 StrCmp $1 ".." "${Index}-Next"
\r
334 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
338 Call InstallFolderInternal
\r
341 Goto "${Index}-Next"
\r
343 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
346 Goto "${Index}-Loop"
\r
352 ;;;;;;;;;;;;;;;;;;;;;;
\r
353 ; Installer sections ;
\r
354 ;;;;;;;;;;;;;;;;;;;;;;
\r
356 Section "Media player (required)" SEC01
\r
358 SetShellVarContext all
\r
359 SetOutPath "$INSTDIR"
\r
361 !insertmacro OpenUninstallLog
\r
363 !insertmacro InstallFile vlc.exe
\r
364 !insertmacro InstallFile vlc.exe.manifest
\r
366 !insertmacro InstallFile ${LIBVLC_DLL}
\r
368 !ifdef LIBVLC_CONTROL_DLL
\r
369 !insertmacro InstallFile ${LIBVLC_CONTROL_DLL}
\r
371 !insertmacro InstallFile *.txt
\r
373 !insertmacro InstallFolder plugins
\r
374 !insertmacro InstallFolder locale
\r
375 !insertmacro InstallFolder osdmenu
\r
376 !insertmacro InstallFolder skins
\r
377 !insertmacro InstallFolder http
\r
378 !insertmacro InstallFolder share
\r
380 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
381 "${PRODUCT_WEB_SITE}"
\r
382 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
383 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
384 "${PRODUCT_WEB_SITE}/doc/"
\r
385 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
387 !insertmacro CloseUninstallLog
\r
389 ; Add VLC to "recomended programs" for the following extensions
\r
390 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
391 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
392 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
393 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
394 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
395 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
397 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
398 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
399 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
400 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
401 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
402 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
404 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
405 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
406 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
407 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
408 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
409 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
411 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
412 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
413 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
414 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
415 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
416 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
417 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
418 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
419 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
420 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
421 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
422 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
423 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
424 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
425 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
426 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
429 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
\r
431 StrCmp $R1 '6.0' lbl_vista lbl_done
\r
434 WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities"
\r
435 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player"
\r
436 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife"
\r
442 Section "Start Menu Shortcut" SEC02a
\r
444 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
445 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
446 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
447 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
448 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
449 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
450 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
451 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
452 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
453 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
454 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
455 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
456 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
457 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
458 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
459 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
460 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
461 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
462 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
463 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
464 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
465 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
466 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
467 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
468 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
469 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
470 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
471 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
472 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
473 "$INSTDIR\Documentation.url"
\r
474 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
475 "$INSTDIR\NEWS.txt" ""
\r
476 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
477 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
478 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
479 "$INSTDIR\vlc.exe" ""
\r
482 Section "Desktop Shortcut" SEC02b
\r
484 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
485 "$INSTDIR\vlc.exe" ""
\r
488 Section /o "Mozilla plugin" SEC03
\r
491 SetOutPath "$INSTDIR"
\r
492 !insertmacro OpenUninstallLog
\r
493 !insertmacro InstallFile mozilla\npvlc.dll
\r
494 !insertmacro CloseUninstallLog
\r
496 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
497 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
498 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
499 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
500 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
501 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
503 ; for very old version of mozilla, these lines may be needed
\r
508 ;!define Index 'Line${__LINE__}'
\r
514 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
515 ; StrCmp $R0 "" "${Index}-End"
\r
516 ; IntOp $R1 $R1 + 1
\r
517 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
518 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
520 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
521 ; !ifdef LIBVLC_DLL
\r
522 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
524 ; !ifdef LIBVLC_CONTROL_DLL
\r
525 ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2"
\r
527 ; Goto "${Index}-Loop"
\r
534 Section "ActiveX plugin" SEC04
\r
536 SetOutPath "$INSTDIR"
\r
537 !insertmacro OpenUninstallLog
\r
538 !insertmacro InstallFile activex\axvlc.dll
\r
539 !insertmacro CloseUninstallLog
\r
540 RegDLL "$INSTDIR\axvlc.dll"
\r
543 SectionGroup "File type associations" SEC06
\r
544 SectionGroup "Audio Files"
\r
545 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
547 SectionGroup "Video Files"
\r
548 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
550 SectionGroup "Other"
\r
551 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
555 Section /o "Context Menus" SEC05
\r
557 !insertmacro MacroAllExtensions AddContextMenu
\r
558 !insertmacro AddContextMenuExt "Directory"
\r
561 Section /o "Delete preferences and cache" SEC07
\r
562 !insertmacro delprefs
\r
565 ; Installer section descriptions
\r
566 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
567 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
568 "The media player itself"
\r
569 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
570 "Adds icons to your start menu for easy access"
\r
571 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
572 "Adds icon to your desktop for easy access"
\r
573 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
574 "The VLC Mozilla and Mozilla Firefox plugin"
\r
575 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
576 "The VLC ActiveX plugin"
\r
577 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
578 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
579 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
580 "Sets VLC media player as the default application for the specified file type"
\r
581 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
582 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
583 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
586 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
590 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
591 "VLC media player has already been installed. $\nDo you want to remove \
\r
592 the previous version before installing $(^Name) ?" \
\r
595 ;Run the uninstaller
\r
598 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
600 !insertmacro MUI_LANGDLL_DISPLAY
\r
603 ReadRegStr $R0 HKLM \
\r
604 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
\r
605 StrCmp $R0 '4.9' lbl_win98
\r
608 MessageBox MB_OK|MB_ICONQUESTION "Windows 98 ! Remember to install MSLU" IDOK
\r
613 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
614 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
615 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
616 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
618 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
619 "DisplayName" "$(^Name)"
\r
620 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
621 "UninstallString" "$INSTDIR\uninstall.exe"
\r
622 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
623 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
624 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
625 "DisplayVersion" "${PRODUCT_VERSION}"
\r
626 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
627 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
628 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
629 "Publisher" "${PRODUCT_PUBLISHER}"
\r
632 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
633 ; Uninstaller sections ;
\r
634 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
636 ; TrimNewlines (copied from NSIS documentation)
\r
637 ; input, top of stack (e.g. whatever$\r$\n)
\r
638 ; output, top of stack (replaces, with e.g. whatever)
\r
639 ; modifies no other variables.
\r
641 Function un.TrimNewlines
\r
649 StrCpy $R2 $R0 1 $R1
\r
650 StrCmp $R2 "$\r" loop
\r
651 StrCmp $R2 "$\n" loop
\r
653 IntCmp $R1 0 no_trim_needed
\r
662 Function un.RemoveEmptyDirs
\r
664 !define Index 'Line${__LINE__}'
\r
665 FindFirst $0 $1 "$INSTDIR$9*"
\r
666 StrCmp $0 "" "${Index}-End"
\r
668 StrCmp $1 "" "${Index}-End"
\r
669 StrCmp $1 "." "${Index}-Next"
\r
670 StrCmp $1 ".." "${Index}-Next"
\r
675 Call un.RemoveEmptyDirs
\r
680 RMDir "$INSTDIR$9$1"
\r
683 Goto "${Index}-Loop"
\r
689 Section "Uninstall" SEC91
\r
691 SetShellVarContext all
\r
693 !insertmacro MacroAllExtensions DeleteContextMenu
\r
694 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
695 !insertmacro DeleteContextMenuExt "Directory"
\r
697 ;remove activex plugin
\r
698 UnRegDLL "$INSTDIR\axvlc.dll"
\r
699 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
701 ;remove mozilla plugin
\r
706 !define Index 'Line${__LINE__}'
\r
712 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
713 StrCmp $R0 "" "${Index}-End"
\r
715 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
716 StrCmp $R2 "" "${Index}-Loop" ""
\r
718 ; old files (0.8.5 and before) that may be lying around
\r
719 Delete /REBOOTOK "$R2\npvlc.dll"
\r
720 Delete /REBOOTOK "$R2\libvlc.dll"
\r
721 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
722 Goto "${Index}-Loop"
\r
726 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
728 RMDir "$SMPROGRAMS\VideoLAN"
\r
729 RMDir /r $SMPROGRAMS\VideoLAN
\r
731 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
734 FileRead $UninstallLog $R0
\r
735 IfErrors UninstallEnd
\r
737 Call un.TrimNewLines
\r
739 Delete "$INSTDIR\$R0"
\r
742 FileClose $UninstallLog
\r
743 Delete "$INSTDIR\uninstall.log"
\r
744 Delete "$INSTDIR\uninstall.exe"
\r
746 Call un.RemoveEmptyDirs
\r
749 DeleteRegKey HKLM Software\VideoLAN
\r
751 DeleteRegKey HKCR Applications\vlc.exe
\r
752 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
753 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
754 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
755 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
756 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
757 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
758 DeleteRegKey HKLM Software\Clients\Media\VLC
\r
759 DeleteRegKey HKCR "VLC.MediaFile"
\r
761 DeleteRegKey HKLM \
\r
762 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
764 DeleteRegKey HKLM \
\r
765 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
767 Delete "$DESKTOP\VLC media player.lnk"
\r
769 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
770 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
774 Section /o "un.Delete preferences and cache" SEC92
\r
775 !insertmacro delprefs
\r
778 ; Uninstaller section descriptions
\r
779 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
780 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
781 "Uninstall VLC media player and all its components"
\r
782 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
783 "Deletes VLC media player preferences and cache files"
\r
784 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
786 ;Function un.onUninstSuccess
\r
788 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
789 ; "$(^Name) was successfully removed from your computer."
\r
793 !insertmacro MUI_UNGETLANGUAGE
\r