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
22 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
23 ; General configuration ;
\r
24 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
26 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
27 OutFile ..\vlc-${VERSION}-win32.exe
\r
28 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
29 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
30 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
33 SetCompressor /SOLID lzma
\r
35 ;ShowInstDetails show
\r
36 ;ShowUnInstDetails show
\r
37 SetOverwrite ifnewer
\r
40 InstType "Recommended"
\r
44 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
45 ; NSIS Modern User Interface configuration ;
\r
46 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
48 ; MUI 1.67 compatible ------
\r
52 !define MUI_ABORTWARNING
\r
53 !define MUI_ICON "vlc48x48.ico"
\r
54 !define MUI_UNICON "vlc48x48.ico"
\r
55 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
59 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
60 !insertmacro MUI_PAGE_WELCOME
\r
62 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
64 !insertmacro MUI_PAGE_COMPONENTS
\r
66 !insertmacro MUI_PAGE_DIRECTORY
\r
68 !insertmacro MUI_PAGE_INSTFILES
\r
70 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
71 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
72 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
73 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
74 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
75 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
76 !insertmacro MUI_PAGE_FINISH
\r
79 !insertmacro MUI_UNPAGE_CONFIRM
\r
80 !insertmacro MUI_UNPAGE_COMPONENTS
\r
81 !insertmacro MUI_UNPAGE_INSTFILES
\r
82 !insertmacro MUI_UNPAGE_FINISH
\r
85 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
86 !insertmacro MUI_LANGUAGE "French"
\r
87 !insertmacro MUI_LANGUAGE "German"
\r
88 !insertmacro MUI_LANGUAGE "Spanish"
\r
89 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
90 !insertmacro MUI_LANGUAGE "TradChinese"
\r
91 !insertmacro MUI_LANGUAGE "Japanese"
\r
92 !insertmacro MUI_LANGUAGE "Korean"
\r
93 !insertmacro MUI_LANGUAGE "Italian"
\r
94 !insertmacro MUI_LANGUAGE "Dutch"
\r
95 !insertmacro MUI_LANGUAGE "Danish"
\r
96 !insertmacro MUI_LANGUAGE "Swedish"
\r
97 !insertmacro MUI_LANGUAGE "Norwegian"
\r
98 !insertmacro MUI_LANGUAGE "Finnish"
\r
99 !insertmacro MUI_LANGUAGE "Greek"
\r
100 !insertmacro MUI_LANGUAGE "Russian"
\r
101 !insertmacro MUI_LANGUAGE "Portuguese"
\r
102 !insertmacro MUI_LANGUAGE "Arabic"
\r
103 !insertmacro MUI_LANGUAGE "Polish"
\r
105 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
108 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
112 ;;;;;;;;;;;;;;;;;;;
\r
113 ; Extension lists ;
\r
114 ;;;;;;;;;;;;;;;;;;;
\r
116 !macro MacroAudioExtensions _action
\r
117 !insertmacro ${_action} ".a52"
\r
118 !insertmacro ${_action} ".aac"
\r
119 !insertmacro ${_action} ".ac3"
\r
120 !insertmacro ${_action} ".dts"
\r
121 !insertmacro ${_action} ".flac"
\r
122 !insertmacro ${_action} ".mka"
\r
123 !insertmacro ${_action} ".mp1"
\r
124 !insertmacro ${_action} ".mp2"
\r
125 !insertmacro ${_action} ".mp3"
\r
126 !insertmacro ${_action} ".ogg"
\r
127 !insertmacro ${_action} ".spx"
\r
128 !insertmacro ${_action} ".wav"
\r
129 !insertmacro ${_action} ".wma"
\r
132 !macro MacroVideoExtensions _action
\r
133 !insertmacro ${_action} ".asf"
\r
134 !insertmacro ${_action} ".avi"
\r
135 !insertmacro ${_action} ".divx"
\r
136 !insertmacro ${_action} ".dv"
\r
137 !insertmacro ${_action} ".m1v"
\r
138 !insertmacro ${_action} ".m2v"
\r
139 !insertmacro ${_action} ".mkv"
\r
140 !insertmacro ${_action} ".mov"
\r
141 !insertmacro ${_action} ".mp4"
\r
142 !insertmacro ${_action} ".mpeg"
\r
143 !insertmacro ${_action} ".mpeg1"
\r
144 !insertmacro ${_action} ".mpeg2"
\r
145 !insertmacro ${_action} ".mpeg4"
\r
146 !insertmacro ${_action} ".mpg"
\r
147 !insertmacro ${_action} ".ps"
\r
148 !insertmacro ${_action} ".ts"
\r
149 !insertmacro ${_action} ".ogm"
\r
150 !insertmacro ${_action} ".vob"
\r
151 !insertmacro ${_action} ".wmv"
\r
154 !macro MacroOtherExtensions _action
\r
155 !insertmacro ${_action} ".asx"
\r
156 !insertmacro ${_action} ".bin"
\r
157 !insertmacro ${_action} ".cue"
\r
158 !insertmacro ${_action} ".m3u"
\r
159 !insertmacro ${_action} ".pls"
\r
160 !insertmacro ${_action} ".vlc"
\r
163 !macro MacroAllExtensions _action
\r
164 !insertmacro MacroAudioExtensions ${_action}
\r
165 !insertmacro MacroVideoExtensions ${_action}
\r
166 !insertmacro MacroOtherExtensions ${_action}
\r
169 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
170 ; File type associations ;
\r
171 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
173 Function RegisterExtension
\r
174 ; back up old value for extension $R0 (eg. ".opt")
\r
175 ReadRegStr $1 HKCR "$R0" ""
\r
176 StrCmp $1 "" NoBackup
\r
177 StrCmp $1 "VLC$R0" "NoBackup"
\r
178 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
180 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
181 ReadRegStr $0 HKCR "VLC$R0" ""
\r
182 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
183 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
184 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
185 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
188 Function un.RegisterExtension
\r
189 ;start of restore script
\r
190 ReadRegStr $1 HKCR "$R0" ""
\r
191 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
192 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
193 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
194 DeleteRegKey HKCR "$R0"
\r
197 WriteRegStr HKCR "$R0" "" $1
\r
198 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
200 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
203 !macro RegisterExtensionSection EXT
\r
208 Call RegisterExtension
\r
213 !macro UnRegisterExtensionSection EXT
\r
216 Call un.RegisterExtension
\r
220 !macro WriteRegStrSupportedTypes EXT
\r
221 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
224 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
225 ; Context menu entries ;
\r
226 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
228 !macro AddContextMenuExt EXT
\r
229 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
230 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
232 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
233 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
236 !macro AddContextMenu EXT
\r
238 ReadRegStr $R0 HKCR ${EXT} ""
\r
239 !insertmacro AddContextMenuExt $R0
\r
243 !macro DeleteContextMenuExt EXT
\r
244 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
245 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
248 !macro DeleteContextMenu EXT
\r
250 ReadRegStr $R0 HKCR ${EXT} ""
\r
251 !insertmacro DeleteContextMenuExt $R0
\r
255 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
256 ; Delete prefs and cache ;
\r
257 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
261 !define Index 'Line${__LINE__}'
\r
264 ; this will loop through all the logged users and "virtual" windows users
\r
265 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
267 EnumRegKey $1 HKU "" $0
\r
268 StrCmp $1 "" "${Index}-End"
\r
270 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
271 StrCmp $2 "" "${Index}-Loop"
\r
273 Goto "${Index}-Loop"
\r
280 !macro OpenUninstallLog
\r
281 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
282 FileSeek $UninstallLog 0 END
\r
285 !macro CloseUninstallLog
\r
286 FileClose $UninstallLog
\r
287 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
290 !macro InstallFile FILEREGEX
\r
291 File "${FILEREGEX}"
\r
292 !define Index 'Line${__LINE__}'
\r
293 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
294 StrCmp $0 "" "${Index}-End"
\r
296 StrCmp $1 "" "${Index}-End"
\r
297 FileWrite $UninstallLog "$1$\r$\n"
\r
299 Goto "${Index}-Loop"
\r
304 !macro InstallFolder FOLDER
\r
305 File /r "${FOLDER}"
\r
307 Call InstallFolderInternal
\r
310 Function InstallFolderInternal
\r
312 !define Index 'Line${__LINE__}'
\r
313 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
314 StrCmp $0 "" "${Index}-End"
\r
316 StrCmp $1 "" "${Index}-End"
\r
317 StrCmp $1 "." "${Index}-Next"
\r
318 StrCmp $1 ".." "${Index}-Next"
\r
319 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
323 Call InstallFolderInternal
\r
326 Goto "${Index}-Next"
\r
328 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
331 Goto "${Index}-Loop"
\r
337 ;;;;;;;;;;;;;;;;;;;;;;
\r
338 ; Installer sections ;
\r
339 ;;;;;;;;;;;;;;;;;;;;;;
\r
341 Section "Media player (required)" SEC01
\r
343 SetShellVarContext all
\r
344 SetOutPath "$INSTDIR"
\r
346 !insertmacro OpenUninstallLog
\r
348 !insertmacro InstallFile vlc.exe
\r
349 !insertmacro InstallFile vlc.exe.manifest
\r
351 !insertmacro InstallFile ${LIBVLC_DLL}
\r
353 !insertmacro InstallFile *.txt
\r
355 !insertmacro InstallFolder plugins
\r
356 !insertmacro InstallFolder locale
\r
357 !insertmacro InstallFolder osdmenu
\r
358 !insertmacro InstallFolder skins
\r
359 !insertmacro InstallFolder http
\r
361 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
362 "${PRODUCT_WEB_SITE}"
\r
363 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
364 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
365 "${PRODUCT_WEB_SITE}/doc/"
\r
366 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
368 !insertmacro CloseUninstallLog
\r
370 ; Add VLC to "recomended programs" for the following extensions
\r
371 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
372 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
373 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
374 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
375 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
376 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
378 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
379 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
380 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
381 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
382 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
383 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
385 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
386 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
387 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
388 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
389 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
390 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
392 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
393 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
394 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
395 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
396 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
397 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
398 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
399 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
400 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
401 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
402 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
403 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
404 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
405 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
406 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
407 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
411 Section "Start Menu Shortcut" SEC02a
\r
413 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
414 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
415 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
416 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
417 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
418 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
419 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
420 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
421 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
422 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
423 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
424 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
425 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
426 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
427 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
428 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
429 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
430 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
431 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
432 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
433 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
434 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
435 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
436 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
437 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
438 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
439 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
440 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
441 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
442 "$INSTDIR\Documentation.url"
\r
443 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
444 "$INSTDIR\NEWS.txt" ""
\r
445 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
446 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
447 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
448 "$INSTDIR\vlc.exe" ""
\r
451 Section "Desktop Shortcut" SEC02b
\r
453 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
454 "$INSTDIR\vlc.exe" ""
\r
457 Section /o "Mozilla plugin" SEC03
\r
460 SetOutPath "$INSTDIR"
\r
461 !insertmacro OpenUninstallLog
\r
462 !insertmacro InstallFile mozilla\npvlc.dll
\r
463 !insertmacro CloseUninstallLog
\r
465 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
466 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
467 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
468 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
469 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
470 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
472 ; for very old version of mozilla, these lines may be needed
\r
477 ;!define Index 'Line${__LINE__}'
\r
483 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
484 ; StrCmp $R0 "" "${Index}-End"
\r
485 ; IntOp $R1 $R1 + 1
\r
486 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
487 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
489 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
490 ; !ifdef LIBVLC_DLL
\r
491 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
493 ; Goto "${Index}-Loop"
\r
500 Section "ActiveX plugin" SEC04
\r
502 SetOutPath "$INSTDIR"
\r
503 !insertmacro OpenUninstallLog
\r
504 !insertmacro InstallFile activex\axvlc.dll
\r
505 !insertmacro CloseUninstallLog
\r
506 RegDLL "$INSTDIR\axvlc.dll"
\r
509 SectionGroup "File type associations" SEC06
\r
510 SectionGroup "Audio Files"
\r
511 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
513 SectionGroup "Video Files"
\r
514 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
516 SectionGroup "Other"
\r
517 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
521 Section /o "Context Menus" SEC05
\r
523 !insertmacro MacroAllExtensions AddContextMenu
\r
524 !insertmacro AddContextMenuExt "Directory"
\r
527 Section /o "Delete preferences and cache" SEC07
\r
528 !insertmacro delprefs
\r
531 ; Installer section descriptions
\r
532 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
533 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
534 "The media player itself"
\r
535 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
536 "Adds icons to your start menu for easy access"
\r
537 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
538 "Adds icon to your desktop for easy access"
\r
539 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
540 "The VLC Mozilla and Mozilla Firefox plugin"
\r
541 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
542 "The VLC ActiveX plugin"
\r
543 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
544 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
545 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
546 "Sets VLC media player as the default application for the specified file type"
\r
547 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
548 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
549 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
552 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
556 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
557 "VLC media player has already been installed. $\nDo you want to remove \
\r
558 the previous version before installing $(^Name) ?" \
\r
561 ;Run the uninstaller
\r
564 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
566 !insertmacro MUI_LANGDLL_DISPLAY
\r
570 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
571 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
572 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
573 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
575 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
576 "DisplayName" "$(^Name)"
\r
577 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
578 "UninstallString" "$INSTDIR\uninstall.exe"
\r
579 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
580 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
581 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
582 "DisplayVersion" "${PRODUCT_VERSION}"
\r
583 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
584 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
585 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
586 "Publisher" "${PRODUCT_PUBLISHER}"
\r
589 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
590 ; Uninstaller sections ;
\r
591 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
593 ; TrimNewlines (copied from NSIS documentation)
\r
594 ; input, top of stack (e.g. whatever$\r$\n)
\r
595 ; output, top of stack (replaces, with e.g. whatever)
\r
596 ; modifies no other variables.
\r
598 Function un.TrimNewlines
\r
606 StrCpy $R2 $R0 1 $R1
\r
607 StrCmp $R2 "$\r" loop
\r
608 StrCmp $R2 "$\n" loop
\r
610 IntCmp $R1 0 no_trim_needed
\r
619 Function un.RemoveEmptyDirs
\r
621 !define Index 'Line${__LINE__}'
\r
622 FindFirst $0 $1 "$INSTDIR$9*"
\r
623 StrCmp $0 "" "${Index}-End"
\r
625 StrCmp $1 "" "${Index}-End"
\r
626 StrCmp $1 "." "${Index}-Next"
\r
627 StrCmp $1 ".." "${Index}-Next"
\r
632 Call un.RemoveEmptyDirs
\r
637 RMDir "$INSTDIR$9$1"
\r
640 Goto "${Index}-Loop"
\r
646 Section "Uninstall" SEC91
\r
648 SetShellVarContext all
\r
650 !insertmacro MacroAllExtensions DeleteContextMenu
\r
651 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
652 !insertmacro DeleteContextMenuExt "Directory"
\r
654 ;remove activex plugin
\r
655 UnRegDLL "$INSTDIR\axvlc.dll"
\r
656 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
658 ;remove mozilla plugin
\r
663 !define Index 'Line${__LINE__}'
\r
669 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
670 StrCmp $R0 "" "${Index}-End"
\r
672 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
673 StrCmp $R2 "" "${Index}-Loop" ""
\r
675 ; old files (0.8.5 and before) that may be lying around
\r
676 Delete /REBOOTOK "$R2\npvlc.dll"
\r
677 Delete /REBOOTOK "$R2\libvlc.dll"
\r
678 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
679 Goto "${Index}-Loop"
\r
683 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
685 RMDir "$SMPROGRAMS\VideoLAN"
\r
686 RMDir /r $SMPROGRAMS\VideoLAN
\r
688 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
691 FileRead $UninstallLog $R0
\r
692 IfErrors UninstallEnd
\r
694 Call un.TrimNewLines
\r
696 Delete "$INSTDIR\$R0"
\r
699 FileClose $UninstallLog
\r
700 Delete "$INSTDIR\uninstall.log"
\r
701 Delete "$INSTDIR\uninstall.exe"
\r
703 Call un.RemoveEmptyDirs
\r
706 DeleteRegKey HKLM Software\VideoLAN
\r
708 DeleteRegKey HKCR Applications\vlc.exe
\r
709 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
710 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
711 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
712 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
713 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
714 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
715 DeleteRegKey HKCR "VLC.MediaFile"
\r
717 DeleteRegKey HKLM \
\r
718 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
720 DeleteRegKey HKLM \
\r
721 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
723 Delete "$DESKTOP\VLC media player.lnk"
\r
725 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
726 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
730 Section /o "un.Delete preferences and cache" SEC92
\r
731 !insertmacro delprefs
\r
734 ; Uninstaller section descriptions
\r
735 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
736 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
737 "Uninstall VLC media player and all its components"
\r
738 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
739 "Deletes VLC media player preferences and cache files"
\r
740 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
742 ;Function un.onUninstSuccess
\r
744 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
745 ; "$(^Name) was successfully removed from your computer."
\r
749 !insertmacro MUI_UNGETLANGUAGE
\r