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
18 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
19 ; General configuration ;
\r
20 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
22 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
23 OutFile ..\vlc-${VERSION}-win32.exe
\r
24 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
25 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
26 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
29 SetCompressor /SOLID lzma
\r
31 ;ShowInstDetails show
\r
32 ;ShowUnInstDetails show
\r
33 SetOverwrite ifnewer
\r
36 InstType "Recommended"
\r
40 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
41 ; NSIS Modern User Interface configuration ;
\r
42 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
44 ; MUI 1.67 compatible ------
\r
48 !define MUI_ABORTWARNING
\r
49 !define MUI_ICON "vlc48x48.ico"
\r
50 !define MUI_UNICON "vlc48x48.ico"
\r
51 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
55 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
56 !insertmacro MUI_PAGE_WELCOME
\r
58 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
60 !insertmacro MUI_PAGE_COMPONENTS
\r
62 !insertmacro MUI_PAGE_DIRECTORY
\r
64 !insertmacro MUI_PAGE_INSTFILES
\r
66 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
67 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
68 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
69 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
70 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
71 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
72 !insertmacro MUI_PAGE_FINISH
\r
75 !insertmacro MUI_UNPAGE_CONFIRM
\r
76 !insertmacro MUI_UNPAGE_COMPONENTS
\r
77 !insertmacro MUI_UNPAGE_INSTFILES
\r
78 !insertmacro MUI_UNPAGE_FINISH
\r
81 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
82 !insertmacro MUI_LANGUAGE "French"
\r
83 !insertmacro MUI_LANGUAGE "German"
\r
84 !insertmacro MUI_LANGUAGE "Spanish"
\r
85 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
86 !insertmacro MUI_LANGUAGE "TradChinese"
\r
87 !insertmacro MUI_LANGUAGE "Japanese"
\r
88 !insertmacro MUI_LANGUAGE "Korean"
\r
89 !insertmacro MUI_LANGUAGE "Italian"
\r
90 !insertmacro MUI_LANGUAGE "Dutch"
\r
91 !insertmacro MUI_LANGUAGE "Danish"
\r
92 !insertmacro MUI_LANGUAGE "Swedish"
\r
93 !insertmacro MUI_LANGUAGE "Norwegian"
\r
94 !insertmacro MUI_LANGUAGE "Finnish"
\r
95 !insertmacro MUI_LANGUAGE "Greek"
\r
96 !insertmacro MUI_LANGUAGE "Russian"
\r
97 !insertmacro MUI_LANGUAGE "Portuguese"
\r
98 !insertmacro MUI_LANGUAGE "Arabic"
\r
100 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
103 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
107 ;;;;;;;;;;;;;;;;;;;
\r
108 ; Extension lists ;
\r
109 ;;;;;;;;;;;;;;;;;;;
\r
111 !macro MacroAudioExtensions _action
\r
112 !insertmacro ${_action} ".a52"
\r
113 !insertmacro ${_action} ".aac"
\r
114 !insertmacro ${_action} ".ac3"
\r
115 !insertmacro ${_action} ".dts"
\r
116 !insertmacro ${_action} ".flac"
\r
117 !insertmacro ${_action} ".mka"
\r
118 !insertmacro ${_action} ".mp1"
\r
119 !insertmacro ${_action} ".mp2"
\r
120 !insertmacro ${_action} ".mp3"
\r
121 !insertmacro ${_action} ".ogg"
\r
122 !insertmacro ${_action} ".spx"
\r
123 !insertmacro ${_action} ".wav"
\r
124 !insertmacro ${_action} ".wma"
\r
127 !macro MacroVideoExtensions _action
\r
128 !insertmacro ${_action} ".asf"
\r
129 !insertmacro ${_action} ".avi"
\r
130 !insertmacro ${_action} ".divx"
\r
131 !insertmacro ${_action} ".dv"
\r
132 !insertmacro ${_action} ".m1v"
\r
133 !insertmacro ${_action} ".m2v"
\r
134 !insertmacro ${_action} ".mkv"
\r
135 !insertmacro ${_action} ".mov"
\r
136 !insertmacro ${_action} ".mp4"
\r
137 !insertmacro ${_action} ".mpeg"
\r
138 !insertmacro ${_action} ".mpeg1"
\r
139 !insertmacro ${_action} ".mpeg2"
\r
140 !insertmacro ${_action} ".mpeg4"
\r
141 !insertmacro ${_action} ".mpg"
\r
142 !insertmacro ${_action} ".ps"
\r
143 !insertmacro ${_action} ".ts"
\r
144 !insertmacro ${_action} ".ogm"
\r
145 !insertmacro ${_action} ".vob"
\r
146 !insertmacro ${_action} ".wmv"
\r
149 !macro MacroOtherExtensions _action
\r
150 !insertmacro ${_action} ".asx"
\r
151 !insertmacro ${_action} ".bin"
\r
152 !insertmacro ${_action} ".cue"
\r
153 !insertmacro ${_action} ".m3u"
\r
154 !insertmacro ${_action} ".pls"
\r
155 !insertmacro ${_action} ".vlc"
\r
158 !macro MacroAllExtensions _action
\r
159 !insertmacro MacroAudioExtensions ${_action}
\r
160 !insertmacro MacroVideoExtensions ${_action}
\r
161 !insertmacro MacroOtherExtensions ${_action}
\r
164 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
165 ; File type associations ;
\r
166 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
168 Function RegisterExtension
\r
169 ; back up old value for extension $R0 (eg. ".opt")
\r
170 ReadRegStr $1 HKCR "$R0" ""
\r
171 StrCmp $1 "" NoBackup
\r
172 StrCmp $1 "VLC$R0" "NoBackup"
\r
173 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
175 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
176 ReadRegStr $0 HKCR "VLC$R0" ""
\r
177 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
178 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
179 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
180 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
183 Function un.RegisterExtension
\r
184 ;start of restore script
\r
185 ReadRegStr $1 HKCR "$R0" ""
\r
186 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
187 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
188 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
189 DeleteRegKey HKCR "$R0"
\r
192 WriteRegStr HKCR "$R0" "" $1
\r
193 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
195 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
198 !macro RegisterExtensionSection EXT
\r
203 Call RegisterExtension
\r
208 !macro UnRegisterExtensionSection EXT
\r
211 Call un.RegisterExtension
\r
215 !macro WriteRegStrSupportedTypes EXT
\r
216 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
219 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
220 ; Context menu entries ;
\r
221 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
223 !macro AddContextMenu EXT
\r
224 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
225 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
227 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
228 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
231 !macro DeleteContextMenu EXT
\r
232 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
233 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
236 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
237 ; Delete prefs and cache ;
\r
238 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
243 !define Index 'Line${__LINE__}'
\r
246 ; this will loop through all the logged users and "virtual" windows users
\r
247 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
249 EnumRegKey $1 HKU "" $0
\r
250 StrCmp $1 "" "${Index}-End"
\r
252 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
253 StrCmp $2 "" "${Index}-Loop"
\r
255 Goto "${Index}-Loop"
\r
262 !macro OpenUninstallLog
\r
263 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
264 FileSeek $UninstallLog 0 END
\r
267 !macro CloseUninstallLog
\r
268 FileClose $UninstallLog
\r
269 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
272 !macro InstallFile FILEREGEX
\r
273 File "${FILEREGEX}"
\r
274 !define Index 'Line${__LINE__}'
\r
275 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
276 StrCmp $0 "" "${Index}-End"
\r
278 StrCmp $1 "" "${Index}-End"
\r
279 FileWrite $UninstallLog "$1$\r$\n"
\r
281 Goto "${Index}-Loop"
\r
286 !macro InstallFolder FOLDER
\r
287 File /r "${FOLDER}"
\r
289 Call InstallFolderInternal
\r
292 Function InstallFolderInternal
\r
294 !define Index 'Line${__LINE__}'
\r
295 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
296 StrCmp $0 "" "${Index}-End"
\r
298 StrCmp $1 "" "${Index}-End"
\r
299 StrCmp $1 "." "${Index}-Next"
\r
300 StrCmp $1 ".." "${Index}-Next"
\r
301 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
305 Call InstallFolderInternal
\r
308 Goto "${Index}-Next"
\r
310 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
313 Goto "${Index}-Loop"
\r
319 ;;;;;;;;;;;;;;;;;;;;;;
\r
320 ; Installer sections ;
\r
321 ;;;;;;;;;;;;;;;;;;;;;;
\r
323 Section "Media player (required)" SEC01
\r
325 SetShellVarContext all
\r
326 SetOutPath "$INSTDIR"
\r
328 !insertmacro OpenUninstallLog
\r
330 !insertmacro InstallFile vlc.exe
\r
331 !insertmacro InstallFile vlc.exe.manifest
\r
333 !insertmacro InstallFile ${LIBVLC_DLL}
\r
335 !insertmacro InstallFile *.txt
\r
337 !insertmacro InstallFolder plugins
\r
338 !insertmacro InstallFolder locale
\r
339 !insertmacro InstallFolder osdmenu
\r
340 !insertmacro InstallFolder skins
\r
341 !insertmacro InstallFolder http
\r
343 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
344 "${PRODUCT_WEB_SITE}"
\r
345 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
346 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
347 "${PRODUCT_WEB_SITE}/doc/"
\r
348 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
350 !insertmacro CloseUninstallLog
\r
352 ; Add VLC to "recomended programs" for the following extensions
\r
353 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
354 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
355 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
356 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
357 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
358 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
360 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
361 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
362 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
363 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
364 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
365 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
367 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
368 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
369 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
370 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
371 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
372 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
374 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
375 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
376 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
377 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
378 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
379 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
380 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
381 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
382 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
383 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
384 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
385 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
386 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
387 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
388 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
389 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
393 Section "Start Menu Shortcut" SEC02a
\r
395 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
396 CreateDirectory "$SMPROGRAMS\VideoLAN\Utilities"
\r
397 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Reset VLC media player preferences and cache files.lnk" \
\r
398 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
399 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Audio mode to DirectX (default).lnk" \
\r
400 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
401 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Audio mode to Waveout.lnk" \
\r
402 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
403 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Main Interface to Skinnable.lnk" \
\r
404 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
405 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Main Interface to wxWidgets (default).lnk" \
\r
406 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
407 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
408 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to Direct3D.lnk" \
\r
409 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --save-config vlc:quit"
\r
410 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to DirectX.lnk" \
\r
411 "$INSTDIR\vlc.exe" "--vout directx --overlay --save-config vlc:quit"
\r
412 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
413 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --save-config vlc:quit"
\r
414 CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to OpenGL.lnk" \
\r
415 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
416 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
417 "$INSTDIR\Documentation.url"
\r
418 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
419 "$INSTDIR\NEWS.txt" ""
\r
420 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
421 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
422 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
423 "$INSTDIR\vlc.exe" ""
\r
426 Section "Desktop Shortcut" SEC02b
\r
428 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
429 "$INSTDIR\vlc.exe" ""
\r
432 Section /o "Mozilla plugin" SEC03
\r
435 !insertmacro OpenUninstallLog
\r
436 !insertmacro InstallFolder mozilla
\r
437 !insertmacro CloseUninstallLog
\r
439 ; doesn't work. bug in mozilla/mozilla firefox or moz documentation (xpt file isn't loaded)
\r
440 ; see mozilla bugs 184506 and 159445
\r
441 ;!define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
442 ;WriteRegStr HKLM ${Moz} "Description" "VideoLAN VLC plugin for Mozilla"
\r
443 ;WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\mozilla\npvlc.dll"
\r
444 ;WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
445 ;WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
446 ;WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
447 ;WriteRegStr HKLM ${Moz} "XPTPath" "$INSTDIR\mozilla\vlcintf.xpt"
\r
453 !define Index 'Line${__LINE__}'
\r
459 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
460 StrCmp $R0 "" "${Index}-End"
\r
462 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
463 StrCmp $R2 "" "${Index}-Loop" ""
\r
465 CopyFiles "$INSTDIR\mozilla\*" "$R2"
\r
467 CopyFiles ${LIBVLC_DLL} "$R2"
\r
469 Goto "${Index}-Loop"
\r
476 Section /o "ActiveX plugin" SEC04
\r
478 SetOutPath "$INSTDIR"
\r
479 !insertmacro OpenUninstallLog
\r
480 !insertmacro InstallFile activex\axvlc.dll
\r
481 !insertmacro CloseUninstallLog
\r
482 RegDLL "$INSTDIR\axvlc.dll"
\r
485 Section /o "Context Menus" SEC05
\r
487 !insertmacro MacroAllExtensions AddContextMenu
\r
488 !insertmacro AddContextMenu "Directory"
\r
491 SectionGroup "File type associations" SEC06
\r
492 SectionGroup "Audio Files"
\r
493 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
495 SectionGroup "Video Files"
\r
496 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
498 SectionGroup "Other"
\r
499 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
503 Section /o "Delete preferences and cache" SEC07
\r
504 !insertmacro delprefs
\r
507 ; Installer section descriptions
\r
508 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
509 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
510 "The media player itself"
\r
511 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
512 "Adds icons to your start menu for easy access"
\r
513 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
514 "Adds icon to your desktop for easy access"
\r
515 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
516 "The VLC Mozilla and Mozilla Firefox plugin"
\r
517 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
518 "The VLC ActiveX plugin"
\r
519 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
520 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
521 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
522 "Sets VLC media player as the default application for the specified file type"
\r
523 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
524 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
525 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
528 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
532 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
533 "VLC media player has already been installed. $\nDo you want to remove \
\r
534 the previous version before installing $(^Name) ?" \
\r
537 ;Run the uninstaller
\r
540 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
542 !insertmacro MUI_LANGDLL_DISPLAY
\r
546 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
547 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
548 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
549 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
551 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
552 "DisplayName" "$(^Name)"
\r
553 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
554 "UninstallString" "$INSTDIR\uninstall.exe"
\r
555 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
556 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
557 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
558 "DisplayVersion" "${PRODUCT_VERSION}"
\r
559 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
560 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
561 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
562 "Publisher" "${PRODUCT_PUBLISHER}"
\r
565 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
566 ; Uninstaller sections ;
\r
567 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
569 ; TrimNewlines (copied from NSIS documentation)
\r
570 ; input, top of stack (e.g. whatever$\r$\n)
\r
571 ; output, top of stack (replaces, with e.g. whatever)
\r
572 ; modifies no other variables.
\r
574 Function un.TrimNewlines
\r
582 StrCpy $R2 $R0 1 $R1
\r
583 StrCmp $R2 "$\r" loop
\r
584 StrCmp $R2 "$\n" loop
\r
586 IntCmp $R1 0 no_trim_needed
\r
595 Function un.RemoveEmptyDirs
\r
597 !define Index 'Line${__LINE__}'
\r
598 FindFirst $0 $1 "$INSTDIR$9*"
\r
599 StrCmp $0 "" "${Index}-End"
\r
601 StrCmp $1 "" "${Index}-End"
\r
602 StrCmp $1 "." "${Index}-Next"
\r
603 StrCmp $1 ".." "${Index}-Next"
\r
608 Call un.RemoveEmptyDirs
\r
613 RMDir "$INSTDIR$9$1"
\r
616 Goto "${Index}-Loop"
\r
622 Section "Uninstall" SEC91
\r
624 SetShellVarContext all
\r
626 !insertmacro MacroAllExtensions DeleteContextMenu
\r
627 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
628 !insertmacro DeleteContextMenu "Directory"
\r
630 UnRegDLL "$INSTDIR\axvlc.dll"
\r
631 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
633 ;remove mozilla plugin
\r
638 !define Index 'Line${__LINE__}'
\r
644 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
645 StrCmp $R0 "" "${Index}-End"
\r
647 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
648 StrCmp $R2 "" "${Index}-Loop" ""
\r
650 Delete "$R2\npvlc.dll"
\r
651 Goto "${Index}-Loop"
\r
656 RMDir "$SMPROGRAMS\VideoLAN"
\r
657 RMDir /r $SMPROGRAMS\VideoLAN
\r
659 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
662 FileRead $UninstallLog $R0
\r
663 IfErrors UninstallEnd
\r
665 Call un.TrimNewLines
\r
667 Delete "$INSTDIR\$R0"
\r
670 FileClose $UninstallLog
\r
671 Delete "$INSTDIR\uninstall.log"
\r
672 Delete "$INSTDIR\uninstall.exe"
\r
674 Call un.RemoveEmptyDirs
\r
677 DeleteRegKey HKLM Software\VideoLAN
\r
679 DeleteRegKey HKCR Applications\vlc.exe
\r
680 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
681 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
682 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
683 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
684 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
685 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
686 DeleteRegKey HKCR "VLC.MediaFile"
\r
688 DeleteRegKey HKLM \
\r
689 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
691 DeleteRegKey HKLM \
\r
692 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
694 Delete "$DESKTOP\VLC media player.lnk"
\r
696 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
697 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
701 Section /o "un.Delete preferences and cache" SEC92
\r
703 !insertmacro delprefs
\r
706 ; Uninstaller section descriptions
\r
707 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
708 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
709 "Uninstall VLC media player and all its components"
\r
710 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
711 "Deletes VLC media player preferences and cache files"
\r
712 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
714 ;Function un.onUninstSuccess
\r
716 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
717 ; "$(^Name) was successfully removed from your computer."
\r
721 !insertmacro MUI_LANGDLL_DISPLAY
\r