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 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
17 ; General configuration ;
\r
18 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
20 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
21 OutFile ..\vlc-${VERSION}-win32.exe
\r
22 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
23 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
24 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
27 SetCompressor /SOLID lzma
\r
29 ;ShowInstDetails show
\r
30 ;ShowUnInstDetails show
\r
31 SetOverwrite ifnewer
\r
37 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
38 ; NSIS Modern User Interface configuration ;
\r
39 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
41 ; MUI 1.67 compatible ------
\r
45 !define MUI_ABORTWARNING
\r
46 !define MUI_ICON "vlc48x48.ico"
\r
47 !define MUI_UNICON "vlc48x48.ico"
\r
48 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
52 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
53 !insertmacro MUI_PAGE_WELCOME
\r
55 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
57 !insertmacro MUI_PAGE_COMPONENTS
\r
59 !insertmacro MUI_PAGE_DIRECTORY
\r
61 !insertmacro MUI_PAGE_INSTFILES
\r
63 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
64 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
65 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
66 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
67 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
68 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
69 !insertmacro MUI_PAGE_FINISH
\r
72 !insertmacro MUI_UNPAGE_CONFIRM
\r
73 !insertmacro MUI_UNPAGE_COMPONENTS
\r
74 !insertmacro MUI_UNPAGE_INSTFILES
\r
75 !insertmacro MUI_UNPAGE_FINISH
\r
78 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
79 !insertmacro MUI_LANGUAGE "French"
\r
80 !insertmacro MUI_LANGUAGE "German"
\r
81 !insertmacro MUI_LANGUAGE "Spanish"
\r
82 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
83 !insertmacro MUI_LANGUAGE "TradChinese"
\r
84 !insertmacro MUI_LANGUAGE "Japanese"
\r
85 !insertmacro MUI_LANGUAGE "Korean"
\r
86 !insertmacro MUI_LANGUAGE "Italian"
\r
87 !insertmacro MUI_LANGUAGE "Dutch"
\r
88 !insertmacro MUI_LANGUAGE "Danish"
\r
89 !insertmacro MUI_LANGUAGE "Swedish"
\r
90 !insertmacro MUI_LANGUAGE "Norwegian"
\r
91 !insertmacro MUI_LANGUAGE "Finnish"
\r
92 !insertmacro MUI_LANGUAGE "Greek"
\r
93 !insertmacro MUI_LANGUAGE "Russian"
\r
94 !insertmacro MUI_LANGUAGE "Portuguese"
\r
95 !insertmacro MUI_LANGUAGE "Arabic"
\r
97 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
100 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
104 ;;;;;;;;;;;;;;;;;;;
\r
105 ; Extension lists ;
\r
106 ;;;;;;;;;;;;;;;;;;;
\r
108 !macro MacroAudioExtensions _action
\r
109 !insertmacro ${_action} ".a52"
\r
110 !insertmacro ${_action} ".aac"
\r
111 !insertmacro ${_action} ".ac3"
\r
112 !insertmacro ${_action} ".dts"
\r
113 !insertmacro ${_action} ".flac"
\r
114 !insertmacro ${_action} ".mka"
\r
115 !insertmacro ${_action} ".mp1"
\r
116 !insertmacro ${_action} ".mp2"
\r
117 !insertmacro ${_action} ".mp3"
\r
118 !insertmacro ${_action} ".ogg"
\r
119 !insertmacro ${_action} ".spx"
\r
120 !insertmacro ${_action} ".wav"
\r
121 !insertmacro ${_action} ".wma"
\r
124 !macro MacroVideoExtensions _action
\r
125 !insertmacro ${_action} ".asf"
\r
126 !insertmacro ${_action} ".avi"
\r
127 !insertmacro ${_action} ".divx"
\r
128 !insertmacro ${_action} ".dv"
\r
129 !insertmacro ${_action} ".m1v"
\r
130 !insertmacro ${_action} ".m2v"
\r
131 !insertmacro ${_action} ".mkv"
\r
132 !insertmacro ${_action} ".mov"
\r
133 !insertmacro ${_action} ".mp4"
\r
134 !insertmacro ${_action} ".mpeg"
\r
135 !insertmacro ${_action} ".mpeg1"
\r
136 !insertmacro ${_action} ".mpeg2"
\r
137 !insertmacro ${_action} ".mpeg4"
\r
138 !insertmacro ${_action} ".mpg"
\r
139 !insertmacro ${_action} ".ps"
\r
140 !insertmacro ${_action} ".ts"
\r
141 !insertmacro ${_action} ".ogm"
\r
142 !insertmacro ${_action} ".vob"
\r
143 !insertmacro ${_action} ".wmv"
\r
146 !macro MacroOtherExtensions _action
\r
147 !insertmacro ${_action} ".asx"
\r
148 !insertmacro ${_action} ".bin"
\r
149 !insertmacro ${_action} ".cue"
\r
150 !insertmacro ${_action} ".m3u"
\r
151 !insertmacro ${_action} ".pls"
\r
152 !insertmacro ${_action} ".vlc"
\r
155 !macro MacroAllExtensions _action
\r
156 !insertmacro MacroAudioExtensions ${_action}
\r
157 !insertmacro MacroVideoExtensions ${_action}
\r
158 !insertmacro MacroOtherExtensions ${_action}
\r
161 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
162 ; File type associations ;
\r
163 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
165 Function RegisterExtension
\r
166 ; back up old value for extension $R0 (eg. ".opt")
\r
167 ReadRegStr $1 HKCR "$R0" ""
\r
168 StrCmp $1 "" NoBackup
\r
169 StrCmp $1 "VLC$R0" "NoBackup"
\r
170 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
172 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
173 ReadRegStr $0 HKCR "VLC$R0" ""
\r
174 WriteRegStr HKCR "VLC$R0" "" "VLC media file"
\r
175 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
176 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --one-instance-when-started-from-file "%1"'
\r
177 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
180 Function un.RegisterExtension
\r
181 ;start of restore script
\r
182 ReadRegStr $1 HKCR "$R0" ""
\r
183 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
184 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
185 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
186 DeleteRegKey HKCR "$R0"
\r
189 WriteRegStr HKCR "$R0" "" $1
\r
190 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
192 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
195 !macro RegisterExtensionSection EXT
\r
200 Call RegisterExtension
\r
205 !macro UnRegisterExtensionSection EXT
\r
208 Call un.RegisterExtension
\r
212 !macro WriteRegStrSupportedTypes EXT
\r
213 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
216 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
217 ; Context menu entries ;
\r
218 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
220 !macro AddContextMenu EXT
\r
221 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
222 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --one-instance-when-started-from-file --no-playlist-enqueue "%1"'
\r
224 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
225 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --one-instance-when-started-from-file --playlist-enqueue "%1"'
\r
228 !macro DeleteContextMenu EXT
\r
229 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
230 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
233 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
234 ; Delete prefs and cache ;
\r
235 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
240 !define Index 'Line${__LINE__}'
\r
243 ; this will loop through all the logged users and "virtual" windows users
\r
244 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
246 EnumRegKey $1 HKU "" $0
\r
247 StrCmp $1 "" "${Index}-End"
\r
249 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
250 StrCmp $2 "" "${Index}-Loop"
\r
252 Goto "${Index}-Loop"
\r
259 !macro OpenUninstallLog
\r
260 FileOpen $UninstallLog "$INSTDIR\uninstall.log" w
\r
261 FileSeek $UninstallLog 0 END
\r
264 !macro CloseUninstallLog
\r
265 FileClose $UninstallLog
\r
266 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
269 !macro InstallFile FILEREGEX
\r
270 File "${FILEREGEX}"
\r
271 !define Index 'Line${__LINE__}'
\r
272 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
273 StrCmp $0 "" "${Index}-End"
\r
275 StrCmp $1 "" "${Index}-End"
\r
276 FileWrite $UninstallLog "$1$\r$\n"
\r
278 Goto "${Index}-Loop"
\r
283 !macro InstallFolder FOLDER
\r
284 File /r "${FOLDER}"
\r
286 Call InstallFolderInternal
\r
289 Function InstallFolderInternal
\r
291 !define Index 'Line${__LINE__}'
\r
292 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
293 StrCmp $0 "" "${Index}-End"
\r
295 StrCmp $1 "" "${Index}-End"
\r
296 StrCmp $1 "." "${Index}-Next"
\r
297 StrCmp $1 ".." "${Index}-Next"
\r
298 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
302 Call InstallFolderInternal
\r
305 Goto "${Index}-Next"
\r
307 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
310 Goto "${Index}-Loop"
\r
316 ;;;;;;;;;;;;;;;;;;;;;;
\r
317 ; Installer sections ;
\r
318 ;;;;;;;;;;;;;;;;;;;;;;
\r
320 Section "Media player (required)" SEC01
\r
322 SetShellVarContext all
\r
323 SetOutPath "$INSTDIR"
\r
325 !insertmacro OpenUninstallLog
\r
327 !insertmacro InstallFile vlc.exe
\r
328 !insertmacro InstallFile vlc.exe.manifest
\r
330 !insertmacro InstallFile *.txt
\r
332 !insertmacro InstallFolder plugins
\r
333 !insertmacro InstallFolder locale
\r
334 !insertmacro InstallFolder osdmenu
\r
335 !insertmacro InstallFolder skins
\r
336 !insertmacro InstallFolder http
\r
338 WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \
\r
339 "${PRODUCT_WEB_SITE}"
\r
340 FileWrite $UninstallLog "${PRODUCT_NAME}.url$\r$\n"
\r
341 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
342 "${PRODUCT_WEB_SITE}/doc/"
\r
343 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
345 !insertmacro CloseUninstallLog
\r
347 ; Add VLC to "recomended programs" for the following extensions
\r
348 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
349 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
350 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
351 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
352 '$INSTDIR\vlc.exe --one-instance-when-started-from-file "%1"'
\r
353 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
355 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
356 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
357 "$INSTDIR\vlc.exe --one-instance-when-started-from-file cdda:%1"
\r
358 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
359 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
360 "$INSTDIR\vlc.exe --one-instance-when-started-from-file dvd:%1"
\r
362 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
363 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
364 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
365 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
366 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
367 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
369 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
370 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
371 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --one-instance-when-started-from-file",0'
\r
372 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
373 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
374 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
375 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
376 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
377 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
378 '$INSTDIR\vlc.exe --one-instance-when-started-from-file dvd:%1'
\r
379 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
380 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
381 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
382 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
383 '$INSTDIR\vlc.exe --one-instance-when-started-from-file cdda:%1'
\r
384 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
388 Section "Start Menu Shortcut" SEC02a
\r
390 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
391 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
392 "$INSTDIR\vlc.exe" "--intf wx --wx-embed"
\r
393 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (alt).lnk" \
\r
394 "$INSTDIR\vlc.exe" "--intf wx --no-wx-embed"
\r
395 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (skins).lnk" \
\r
396 "$INSTDIR\vlc.exe" "--intf skins"
\r
397 CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC defaults and quit.lnk" \
\r
398 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit "
\r
399 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_NAME} Website.lnk" \
\r
400 "$INSTDIR\${PRODUCT_NAME}.url"
\r
401 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
402 "$INSTDIR\Documentation.url"
\r
405 Section "Desktop Shortcut" SEC02b
\r
407 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
408 "$INSTDIR\vlc.exe" "--intf wx"
\r
411 Section /o "Mozilla plugin" SEC03
\r
414 !insertmacro OpenUninstallLog
\r
415 !insertmacro InstallFolder mozilla
\r
416 !insertmacro CloseUninstallLog
\r
418 ; doesn't work. bug in mozilla/mozilla firefox or moz documentation (xpt file isn't loaded)
\r
419 ; see mozilla bugs 184506 and 159445
\r
420 ;!define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
421 ;WriteRegStr HKLM ${Moz} "Description" "VideoLAN VLC plugin for Mozilla"
\r
422 ;WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\mozilla\npvlc.dll"
\r
423 ;WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
424 ;WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
425 ;WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
426 ;WriteRegStr HKLM ${Moz} "XPTPath" "$INSTDIR\mozilla\vlcintf.xpt"
\r
432 !define Index 'Line${__LINE__}'
\r
438 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
439 StrCmp $R0 "" "${Index}-End"
\r
441 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
442 StrCmp $R2 "" "${Index}-Loop" ""
\r
444 CopyFiles "$INSTDIR\mozilla\*" "$R2"
\r
445 Goto "${Index}-Loop"
\r
452 Section "ActiveX plugin" SEC04
\r
454 SetOutPath "$INSTDIR"
\r
455 !insertmacro OpenUninstallLog
\r
456 !insertmacro InstallFile activex\axvlc.dll
\r
457 !insertmacro CloseUninstallLog
\r
458 RegDLL "$INSTDIR\axvlc.dll"
\r
461 Section "Context Menus" SEC05
\r
463 !insertmacro MacroAllExtensions AddContextMenu
\r
464 !insertmacro AddContextMenu "Directory"
\r
467 SectionGroup "File type associations" SEC06
\r
468 SectionGroup "Audio Files"
\r
469 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
471 SectionGroup "Video Files"
\r
472 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
474 SectionGroup "Other"
\r
475 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
479 Section /o "Delete preferences and cache" SEC07
\r
480 !insertmacro delprefs
\r
483 ; Installer section descriptions
\r
484 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
485 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
486 "The media player itself"
\r
487 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
488 "Adds icons to your start menu for easy access"
\r
489 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
490 "Adds icon to your desktop for easy access"
\r
491 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
492 "The VLC Mozilla and Mozilla Firefox plugin"
\r
493 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
494 "The VLC ActiveX plugin"
\r
495 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
496 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
497 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
498 "Sets VLC media player as the default application for the specified file type"
\r
499 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
500 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
501 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
504 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
508 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
509 "VLC media player has already been installed. $\nDo you want to remove \
\r
510 the previous version before installing $(^Name) ?" \
\r
513 ;Run the uninstaller
\r
516 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
518 !insertmacro MUI_LANGDLL_DISPLAY
\r
522 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
523 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
524 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
525 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
527 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
528 "DisplayName" "$(^Name)"
\r
529 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
530 "UninstallString" "$INSTDIR\uninstall.exe"
\r
531 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
532 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
533 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
534 "DisplayVersion" "${PRODUCT_VERSION}"
\r
535 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
536 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
537 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
538 "Publisher" "${PRODUCT_PUBLISHER}"
\r
541 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
542 ; Uninstaller sections ;
\r
543 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
545 ; TrimNewlines (copied from NSIS documentation)
\r
546 ; input, top of stack (e.g. whatever$\r$\n)
\r
547 ; output, top of stack (replaces, with e.g. whatever)
\r
548 ; modifies no other variables.
\r
550 Function un.TrimNewlines
\r
558 StrCpy $R2 $R0 1 $R1
\r
559 StrCmp $R2 "$\r" loop
\r
560 StrCmp $R2 "$\n" loop
\r
562 IntCmp $R1 0 no_trim_needed
\r
571 Function un.RemoveEmptyDirs
\r
573 !define Index 'Line${__LINE__}'
\r
574 FindFirst $0 $1 "$INSTDIR$9*"
\r
575 StrCmp $0 "" "${Index}-End"
\r
577 StrCmp $1 "" "${Index}-End"
\r
578 StrCmp $1 "." "${Index}-Next"
\r
579 StrCmp $1 ".." "${Index}-Next"
\r
584 Call un.RemoveEmptyDirs
\r
589 RMDir "$INSTDIR$9$1"
\r
592 Goto "${Index}-Loop"
\r
598 Section "Uninstall" SEC91
\r
600 SetShellVarContext all
\r
602 !insertmacro MacroAllExtensions DeleteContextMenu
\r
603 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
604 !insertmacro DeleteContextMenu "Directory"
\r
606 UnRegDLL "$INSTDIR\axvlc.dll"
\r
607 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
609 ;remove mozilla plugin
\r
614 !define Index 'Line${__LINE__}'
\r
620 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
621 StrCmp $R0 "" "${Index}-End"
\r
623 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
624 StrCmp $R2 "" "${Index}-Loop" ""
\r
626 Delete "$R2\vlcintf.xpt"
\r
627 Delete "$R2\npvlc.dll"
\r
628 Goto "${Index}-Loop"
\r
633 RMDir "$SMPROGRAMS\VideoLAN"
\r
634 RMDir /r $SMPROGRAMS\VideoLAN
\r
636 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
639 FileRead $UninstallLog $R0
\r
640 IfErrors UninstallEnd
\r
642 Call un.TrimNewLines
\r
644 Delete "$INSTDIR\$R0"
\r
647 FileClose $UninstallLog
\r
648 Delete "$INSTDIR\uninstall.log"
\r
649 Delete "$INSTDIR\uninstall.exe"
\r
651 Call un.RemoveEmptyDirs
\r
654 DeleteRegKey HKLM Software\VideoLAN
\r
656 DeleteRegKey HKCR Applications\vlc.exe
\r
657 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
658 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
659 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
660 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
661 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
662 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
663 DeleteRegKey HKCR "VLC.MediaFile"
\r
665 DeleteRegKey HKLM \
\r
666 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
668 DeleteRegKey HKLM \
\r
669 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
671 Delete "$DESKTOP\VLC media player.lnk"
\r
673 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
674 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
678 Section /o "un.Delete preferences and cache" SEC92
\r
680 !insertmacro delprefs
\r
683 ; Uninstaller section descriptions
\r
684 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
685 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
686 "Uninstall VLC media player and all its components"
\r
687 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
688 "Deletes VLC media player preferences and cache files"
\r
689 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
691 ;Function un.onUninstSuccess
\r
693 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
694 ; "$(^Name) was successfully removed from your computer."
\r
698 !insertmacro MUI_LANGDLL_DISPLAY
\r