1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; NSIS installer script for vlc ;
3 ; (http://nsis.sourceforge.net) ;
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 !define PRODUCT_NAME
"VLC media player"
7 !define PRODUCT_VERSION
'${VERSION}'
8 !define PRODUCT_GROUP
"VideoLAN"
9 !define PRODUCT_PUBLISHER
"VideoLAN Team"
10 !define PRODUCT_WEB_SITE
"http://www.videolan.org"
11 !define PRODUCT_DIR_REGKEY
"Software\VideoLAN\VLC"
12 !define PRODUCT_UNINST_KEY
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
13 !define PRODUCT_UNINST_ROOT_KEY
"HKLM"
14 !define PRODUCT_ID
"{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"
18 ;;;;;;;;;;;;;;;;;;;;;;;;;
19 ; General configuration ;
20 ;;;;;;;;;;;;;;;;;;;;;;;;;
22 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
23 OutFile ..\vlc
-${VERSION}-win32
.exe
24 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
25 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
26 !ifdef NSIS_LZMA_COMPRESS_WHOLE
29 SetCompressor
/SOLID lzma
32 ;ShowUnInstDetails show
36 InstType "Recommended"
40 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41 ; NSIS Modern User Interface configuration ;
42 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44 ; MUI 1.67 compatible ------
48 !define MUI_ABORTWARNING
49 !define MUI_ICON
"vlc48x48.ico"
50 !define MUI_UNICON
"vlc48x48.ico"
51 !define MUI_COMPONENTSPAGE_SMALLDESC
55 !define MUI_WELCOMEPAGE_TITLE_3LINES
56 !insertmacro MUI_PAGE_WELCOME
58 !insertmacro MUI_PAGE_LICENSE
"COPYING.txt"
60 !insertmacro MUI_PAGE_COMPONENTS
62 !insertmacro MUI_PAGE_DIRECTORY
64 !insertmacro MUI_PAGE_INSTFILES
66 !define MUI_FINISHPAGE_RUN
"$INSTDIR\vlc.exe"
67 !define MUI_FINISHPAGE_SHOWREADME
"$INSTDIR\README.txt"
68 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
69 !define MUI_FINISHPAGE_LINK
"Visit the VideoLAN VLC media player Website"
70 !define MUI_FINISHPAGE_LINK_LOCATION
"http://www.videolan.org/vlc/"
71 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
72 !insertmacro MUI_PAGE_FINISH
75 !insertmacro MUI_UNPAGE_CONFIRM
76 !insertmacro MUI_UNPAGE_COMPONENTS
77 !insertmacro MUI_UNPAGE_INSTFILES
78 !insertmacro MUI_UNPAGE_FINISH
81 !insertmacro MUI_LANGUAGE
"English" # first language is the default language
82 !insertmacro MUI_LANGUAGE
"French"
83 !insertmacro MUI_LANGUAGE
"German"
84 !insertmacro MUI_LANGUAGE
"Spanish"
85 !insertmacro MUI_LANGUAGE
"SimpChinese"
86 !insertmacro MUI_LANGUAGE
"TradChinese"
87 !insertmacro MUI_LANGUAGE
"Japanese"
88 !insertmacro MUI_LANGUAGE
"Korean"
89 !insertmacro MUI_LANGUAGE
"Italian"
90 !insertmacro MUI_LANGUAGE
"Dutch"
91 !insertmacro MUI_LANGUAGE
"Danish"
92 !insertmacro MUI_LANGUAGE
"Swedish"
93 !insertmacro MUI_LANGUAGE
"Norwegian"
94 !insertmacro MUI_LANGUAGE
"Finnish"
95 !insertmacro MUI_LANGUAGE
"Greek"
96 !insertmacro MUI_LANGUAGE
"Russian"
97 !insertmacro MUI_LANGUAGE
"Portuguese"
98 !insertmacro MUI_LANGUAGE
"Arabic"
100 !insertmacro MUI_RESERVEFILE_LANGDLL
103 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
111 !macro MacroAudioExtensions _action
112 !insertmacro ${_action} ".a52"
113 !insertmacro ${_action} ".aac"
114 !insertmacro ${_action} ".ac3"
115 !insertmacro ${_action} ".dts"
116 !insertmacro ${_action} ".flac"
117 !insertmacro ${_action} ".mka"
118 !insertmacro ${_action} ".mp1"
119 !insertmacro ${_action} ".mp2"
120 !insertmacro ${_action} ".mp3"
121 !insertmacro ${_action} ".ogg"
122 !insertmacro ${_action} ".spx"
123 !insertmacro ${_action} ".wav"
124 !insertmacro ${_action} ".wma"
127 !macro MacroVideoExtensions _action
128 !insertmacro ${_action} ".asf"
129 !insertmacro ${_action} ".avi"
130 !insertmacro ${_action} ".divx"
131 !insertmacro ${_action} ".dv"
132 !insertmacro ${_action} ".m1v"
133 !insertmacro ${_action} ".m2v"
134 !insertmacro ${_action} ".mkv"
135 !insertmacro ${_action} ".mov"
136 !insertmacro ${_action} ".mp4"
137 !insertmacro ${_action} ".mpeg"
138 !insertmacro ${_action} ".mpeg1"
139 !insertmacro ${_action} ".mpeg2"
140 !insertmacro ${_action} ".mpeg4"
141 !insertmacro ${_action} ".mpg"
142 !insertmacro ${_action} ".ps"
143 !insertmacro ${_action} ".ts"
144 !insertmacro ${_action} ".ogm"
145 !insertmacro ${_action} ".vob"
146 !insertmacro ${_action} ".wmv"
149 !macro MacroOtherExtensions _action
150 !insertmacro ${_action} ".asx"
151 !insertmacro ${_action} ".bin"
152 !insertmacro ${_action} ".cue"
153 !insertmacro ${_action} ".m3u"
154 !insertmacro ${_action} ".pls"
155 !insertmacro ${_action} ".vlc"
158 !macro MacroAllExtensions _action
159 !insertmacro MacroAudioExtensions
${_action}
160 !insertmacro MacroVideoExtensions
${_action}
161 !insertmacro MacroOtherExtensions
${_action}
164 ;;;;;;;;;;;;;;;;;;;;;;;;;;
165 ; File type associations ;
166 ;;;;;;;;;;;;;;;;;;;;;;;;;;
168 Function RegisterExtension
169 ; back up old value for extension $R0 (eg. ".opt")
170 ReadRegStr $1 HKCR "$R0" ""
171 StrCmp $1 "" NoBackup
172 StrCmp $1 "VLC$R0" "NoBackup"
173 WriteRegStr HKCR "$R0" "VLC.backup" $1
175 WriteRegStr HKCR "$R0" "" "VLC$R0"
176 ReadRegStr $0 HKCR "VLC$R0" ""
177 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
178 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
179 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
180 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
183 Function un
.RegisterExtension
184 ;start of restore script
185 ReadRegStr $1 HKCR "$R0" ""
186 StrCmp $1 "VLC$R0" 0 NoOwn
; only do this if we own it
187 ReadRegStr $1 HKCR "$R0" "VLC.backup"
188 StrCmp $1 "" 0 Restore
; if backup="" then delete the whole key
189 DeleteRegKey HKCR "$R0"
192 WriteRegStr HKCR "$R0" "" $1
193 DeleteRegValue HKCR "$R0" "VLC.backup"
195 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
198 !macro RegisterExtensionSection
EXT
203 Call RegisterExtension
208 !macro UnRegisterExtensionSection
EXT
211 Call un
.RegisterExtension
215 !macro WriteRegStrSupportedTypes
EXT
216 WriteRegStr HKCR Applications\vlc
.exe\SupportedTypes
${EXT} ""
219 ;;;;;;;;;;;;;;;;;;;;;;;;
220 ; Context menu entries ;
221 ;;;;;;;;;;;;;;;;;;;;;;;;
223 !macro AddContextMenu
EXT
224 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC
"" "Play with VLC media player"
225 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command
"" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
227 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC
"" "Add to VLC media player's Playlist"
228 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command
"" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
231 !macro DeleteContextMenu
EXT
232 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
233 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
236 ;;;;;;;;;;;;;;;;;;;;;;;;;;
237 ; Delete prefs and cache ;
238 ;;;;;;;;;;;;;;;;;;;;;;;;;;
242 !define Index
'Line${__LINE__}'
245 ; this will loop through all the logged users and "virtual" windows users
246 ; (it looks like users are only present in HKEY_USERS when they are logged in)
248 EnumRegKey $1 HKU "" $0
249 StrCmp $1 "" "${Index}-End"
251 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
252 StrCmp $2 "" "${Index}-Loop"
261 !macro OpenUninstallLog
262 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
263 FileSeek $UninstallLog 0 END
266 !macro CloseUninstallLog
267 FileClose $UninstallLog
268 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
271 !macro InstallFile FILEREGEX
273 !define Index
'Line${__LINE__}'
274 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
275 StrCmp $0 "" "${Index}-End"
277 StrCmp $1 "" "${Index}-End"
278 FileWrite $UninstallLog "$1$\r$\n"
285 !macro InstallFolder FOLDER
288 Call InstallFolderInternal
291 Function InstallFolderInternal
293 !define Index
'Line${__LINE__}'
294 FindFirst $0 $1 "$INSTDIR\$9\*"
295 StrCmp $0 "" "${Index}-End"
297 StrCmp $1 "" "${Index}-End"
298 StrCmp $1 "." "${Index}-Next"
299 StrCmp $1 ".." "${Index}-Next"
300 IfFileExists "$9\$1\*" 0 "${Index}-Write"
304 Call InstallFolderInternal
309 FileWrite $UninstallLog "$9\$1$\r$\n"
318 ;;;;;;;;;;;;;;;;;;;;;;
319 ; Installer sections ;
320 ;;;;;;;;;;;;;;;;;;;;;;
322 Section "Media player (required)" SEC01
324 SetShellVarContext all
325 SetOutPath "$INSTDIR"
327 !insertmacro OpenUninstallLog
329 !insertmacro InstallFile vlc
.exe
330 !insertmacro InstallFile vlc
.exe
.manifest
332 !insertmacro InstallFile
${LIBVLC_DLL}
334 !insertmacro InstallFile
*.txt
336 !insertmacro InstallFolder plugins
337 !insertmacro InstallFolder locale
338 !insertmacro InstallFolder osdmenu
339 !insertmacro InstallFolder skins
340 !insertmacro InstallFolder http
342 WriteIniStr
"$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
343 "${PRODUCT_WEB_SITE}"
344 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
345 WriteIniStr
"$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
346 "${PRODUCT_WEB_SITE}/doc/"
347 FileWrite $UninstallLog "Documentation.url$\r$\n"
349 !insertmacro CloseUninstallLog
351 ; Add VLC to "recomended programs" for the following extensions
352 WriteRegStr HKCR Applications\vlc
.exe
"" ""
353 WriteRegStr HKCR Applications\vlc
.exe
"FriendlyAppName" "VLC media player"
354 WriteRegStr HKCR Applications\vlc
.exe\shell\Play
"" "Play with VLC"
355 WriteRegStr HKCR Applications\vlc
.exe\shell\Play\command
"" \
356 '$INSTDIR\vlc.exe --started-from-file "%1"'
357 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
359 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
360 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
361 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
362 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
363 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
364 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
366 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
367 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
368 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
369 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
370 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
371 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
373 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
374 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
375 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
376 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
377 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
378 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
379 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
380 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
381 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
382 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
383 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
384 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
385 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
386 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
387 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
388 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
392 Section "Start Menu Shortcut" SEC02a
394 CreateDirectory "$SMPROGRAMS\VideoLAN"
395 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
396 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
397 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
398 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
399 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
400 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
401 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
402 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
403 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
404 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
405 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
406 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
407 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
408 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
409 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
410 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
411 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
412 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
413 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
414 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
415 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
416 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
417 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
418 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
419 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
420 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
421 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
422 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
423 "$INSTDIR\Documentation.url"
424 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
425 "$INSTDIR\NEWS.txt" ""
426 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
427 "$INSTDIR\${PRODUCT_GROUP} Website.url"
428 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
429 "$INSTDIR\vlc.exe" ""
432 Section "Desktop Shortcut" SEC02b
434 CreateShortCut "$DESKTOP\VLC media player.lnk" \
435 "$INSTDIR\vlc.exe" ""
438 Section /o
"Mozilla plugin" SEC03
441 SetOutPath "$INSTDIR"
442 !insertmacro OpenUninstallLog
443 !insertmacro InstallFile mozilla\npvlc
.dll
444 !insertmacro CloseUninstallLog
446 !define Moz
"SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
447 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
448 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
449 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
450 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
451 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
453 ; for very old version of mozilla, these lines may be needed
458 ;!define Index 'Line${__LINE__}'
464 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
465 ; StrCmp $R0 "" "${Index}-End"
467 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
468 ; StrCmp $R2 "" "${Index}-Loop" ""
470 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
472 ; CopyFiles ${LIBVLC_DLL} "$R2"
474 ; Goto "${Index}-Loop"
481 Section "ActiveX plugin" SEC04
483 SetOutPath "$INSTDIR"
484 !insertmacro OpenUninstallLog
485 !insertmacro InstallFile activex\axvlc
.dll
486 !insertmacro CloseUninstallLog
487 RegDLL "$INSTDIR\axvlc.dll"
490 Section /o
"Context Menus" SEC05
492 !insertmacro MacroAllExtensions AddContextMenu
493 !insertmacro AddContextMenu
"Directory"
496 SectionGroup
"File type associations" SEC06
497 SectionGroup
"Audio Files"
498 !insertmacro MacroAudioExtensions RegisterExtensionSection
500 SectionGroup
"Video Files"
501 !insertmacro MacroVideoExtensions RegisterExtensionSection
504 !insertmacro MacroOtherExtensions RegisterExtensionSection
508 Section /o
"Delete preferences and cache" SEC07
509 !insertmacro delprefs
512 ; Installer section descriptions
513 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
514 !insertmacro MUI_DESCRIPTION_TEXT
${SEC01} \
515 "The media player itself"
516 !insertmacro MUI_DESCRIPTION_TEXT
${SEC02a} \
517 "Adds icons to your start menu for easy access"
518 !insertmacro MUI_DESCRIPTION_TEXT
${SEC02b} \
519 "Adds icon to your desktop for easy access"
520 !insertmacro MUI_DESCRIPTION_TEXT
${SEC03} \
521 "The VLC Mozilla and Mozilla Firefox plugin"
522 !insertmacro MUI_DESCRIPTION_TEXT
${SEC04} \
523 "The VLC ActiveX plugin"
524 !insertmacro MUI_DESCRIPTION_TEXT
${SEC05} \
525 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
526 !insertmacro MUI_DESCRIPTION_TEXT
${SEC06} \
527 "Sets VLC media player as the default application for the specified file type"
528 !insertmacro MUI_DESCRIPTION_TEXT
${SEC07} \
529 "Deletes VLC media player preferences and cache files leftover from previous installations"
530 !insertmacro MUI_FUNCTION_DESCRIPTION_END
533 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
537 MessageBox MB_YESNO|
MB_ICONEXCLAMATION \
538 "VLC media player has already been installed. $\nDo you want to remove \
539 the previous version before installing $(^Name) ?" \
545 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
547 !insertmacro MUI_LANGDLL_DISPLAY
551 WriteUninstaller "$INSTDIR\uninstall.exe"
552 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
553 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
554 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
556 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
557 "DisplayName" "$(^Name)"
558 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
559 "UninstallString" "$INSTDIR\uninstall.exe"
560 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
561 "DisplayIcon" "$INSTDIR\vlc.exe"
562 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
563 "DisplayVersion" "${PRODUCT_VERSION}"
564 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
565 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
566 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
567 "Publisher" "${PRODUCT_PUBLISHER}"
570 ;;;;;;;;;;;;;;;;;;;;;;;;
571 ; Uninstaller sections ;
572 ;;;;;;;;;;;;;;;;;;;;;;;;
574 ; TrimNewlines (copied from NSIS documentation)
575 ; input, top of stack (e.g. whatever$\r$\n)
576 ; output, top of stack (replaces, with e.g. whatever)
577 ; modifies no other variables.
579 Function un
.TrimNewlines
588 StrCmp $R2 "$\r" loop
589 StrCmp $R2 "$\n" loop
591 IntCmp $R1 0 no_trim_needed
600 Function un
.RemoveEmptyDirs
602 !define Index
'Line${__LINE__}'
603 FindFirst $0 $1 "$INSTDIR$9*"
604 StrCmp $0 "" "${Index}-End"
606 StrCmp $1 "" "${Index}-End"
607 StrCmp $1 "." "${Index}-Next"
608 StrCmp $1 ".." "${Index}-Next"
613 Call un
.RemoveEmptyDirs
627 Section "Uninstall" SEC91
629 SetShellVarContext all
631 !insertmacro MacroAllExtensions DeleteContextMenu
632 !insertmacro MacroAllExtensions UnRegisterExtensionSection
633 !insertmacro DeleteContextMenu
"Directory"
635 ;remove activex plugin
636 UnRegDLL "$INSTDIR\axvlc.dll"
637 Delete /REBOOTOK
"$INSTDIR\axvlc.dll"
639 ;remove mozilla plugin
644 !define Index
'Line${__LINE__}'
650 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
651 StrCmp $R0 "" "${Index}-End"
653 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
654 StrCmp $R2 "" "${Index}-Loop" ""
656 ; old files (0.8.5 and before) that may be lying around
657 Delete /REBOOTOK
"$R2\npvlc.dll"
658 Delete /REBOOTOK
"$R2\libvlc.dll"
659 Delete /REBOOTOK
"$R2\vlcintf.xpt"
664 Delete /REBOOTOK
"$INSTDIR\npvlc.dll"
666 RMDir "$SMPROGRAMS\VideoLAN"
667 RMDir /r
$SMPROGRAMS\VideoLAN
669 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
672 FileRead $UninstallLog $R0
673 IfErrors UninstallEnd
677 Delete "$INSTDIR\$R0"
680 FileClose $UninstallLog
681 Delete "$INSTDIR\uninstall.log"
682 Delete "$INSTDIR\uninstall.exe"
684 Call un
.RemoveEmptyDirs
687 DeleteRegKey HKLM Software\VideoLAN
689 DeleteRegKey HKCR Applications\vlc
.exe
690 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
691 DeleteRegKey HKCR DVD\shell\PlayWithVLC
692 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
693 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
694 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
695 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
696 DeleteRegKey HKCR "VLC.MediaFile"
699 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
702 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
704 Delete "$DESKTOP\VLC media player.lnk"
706 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
707 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
711 Section /o
"un.Delete preferences and cache" SEC92
712 !insertmacro delprefs
715 ; Uninstaller section descriptions
716 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
717 !insertmacro MUI_DESCRIPTION_TEXT
${SEC91} \
718 "Uninstall VLC media player and all its components"
719 !insertmacro MUI_DESCRIPTION_TEXT
${SEC92} \
720 "Deletes VLC media player preferences and cache files"
721 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
723 ;Function un.onUninstSuccess
725 ; MessageBox MB_ICONINFORMATION|MB_OK \
726 ; "$(^Name) was successfully removed from your computer."
730 !insertmacro MUI_LANGDLL_DISPLAY