1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
2 ; NSIS installer script for vlc ;
\r
3 ; (http://nsis.sourceforge.net) ;
\r
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
6 !define PRODUCT_NAME "VLC media player"
\r
7 !define PRODUCT_VERSION '${VERSION}'
\r
8 !define PRODUCT_GROUP "VideoLAN"
\r
9 !define PRODUCT_PUBLISHER "VideoLAN Team"
\r
10 !define PRODUCT_WEB_SITE "http://www.videolan.org"
\r
11 !define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC"
\r
12 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
13 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
\r
14 !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"
\r
16 !define MUI_LANGDLL_REGISTRY_ROOT "HKLM"
\r
17 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}"
\r
18 !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
\r
21 @FILE_LIBVLC_CONTROL_DLL@
\r
23 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
24 ; General configuration ;
\r
25 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
27 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
28 OutFile ..\vlc-${VERSION}-win32.exe
\r
29 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
30 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
31 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
34 SetCompressor /SOLID lzma
\r
36 ;ShowInstDetails show
\r
37 ;ShowUnInstDetails show
\r
38 SetOverwrite ifnewer
\r
41 InstType "Recommended"
\r
45 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
46 ; NSIS Modern User Interface configuration ;
\r
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
49 ; MUI 1.67 compatible ------
\r
53 !define MUI_ABORTWARNING
\r
54 !define MUI_ICON "vlc48x48.ico"
\r
55 !define MUI_UNICON "vlc48x48.ico"
\r
56 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
60 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
61 !insertmacro MUI_PAGE_WELCOME
\r
63 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
65 !insertmacro MUI_PAGE_COMPONENTS
\r
67 !insertmacro MUI_PAGE_DIRECTORY
\r
69 !insertmacro MUI_PAGE_INSTFILES
\r
71 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
72 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
73 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
74 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
75 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
76 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
77 !insertmacro MUI_PAGE_FINISH
\r
80 !insertmacro MUI_UNPAGE_CONFIRM
\r
81 !insertmacro MUI_UNPAGE_COMPONENTS
\r
82 !insertmacro MUI_UNPAGE_INSTFILES
\r
83 !insertmacro MUI_UNPAGE_FINISH
\r
86 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
87 !insertmacro MUI_LANGUAGE "French"
\r
88 !insertmacro MUI_LANGUAGE "German"
\r
89 !insertmacro MUI_LANGUAGE "Spanish"
\r
90 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
91 !insertmacro MUI_LANGUAGE "TradChinese"
\r
92 !insertmacro MUI_LANGUAGE "Japanese"
\r
93 !insertmacro MUI_LANGUAGE "Korean"
\r
94 !insertmacro MUI_LANGUAGE "Italian"
\r
95 !insertmacro MUI_LANGUAGE "Dutch"
\r
96 !insertmacro MUI_LANGUAGE "Danish"
\r
97 !insertmacro MUI_LANGUAGE "Swedish"
\r
98 !insertmacro MUI_LANGUAGE "Norwegian"
\r
99 !insertmacro MUI_LANGUAGE "Finnish"
\r
100 !insertmacro MUI_LANGUAGE "Greek"
\r
101 !insertmacro MUI_LANGUAGE "Russian"
\r
102 !insertmacro MUI_LANGUAGE "Portuguese"
\r
103 !insertmacro MUI_LANGUAGE "Arabic"
\r
104 !insertmacro MUI_LANGUAGE "Polish"
\r
106 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
109 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
113 ;;;;;;;;;;;;;;;;;;;
\r
114 ; Extension lists ;
\r
115 ;;;;;;;;;;;;;;;;;;;
\r
117 !macro MacroAudioExtensions _action
\r
118 !insertmacro ${_action} ".a52"
\r
119 !insertmacro ${_action} ".aac"
\r
120 !insertmacro ${_action} ".ac3"
\r
121 !insertmacro ${_action} ".dts"
\r
122 !insertmacro ${_action} ".flac"
\r
123 !insertmacro ${_action} ".mka"
\r
124 !insertmacro ${_action} ".mp1"
\r
125 !insertmacro ${_action} ".mp2"
\r
126 !insertmacro ${_action} ".mp3"
\r
127 !insertmacro ${_action} ".ogg"
\r
128 !insertmacro ${_action} ".spx"
\r
129 !insertmacro ${_action} ".wav"
\r
130 !insertmacro ${_action} ".wma"
\r
133 !macro MacroVideoExtensions _action
\r
134 !insertmacro ${_action} ".asf"
\r
135 !insertmacro ${_action} ".avi"
\r
136 !insertmacro ${_action} ".divx"
\r
137 !insertmacro ${_action} ".dv"
\r
138 !insertmacro ${_action} ".m1v"
\r
139 !insertmacro ${_action} ".m2v"
\r
140 !insertmacro ${_action} ".mkv"
\r
141 !insertmacro ${_action} ".mov"
\r
142 !insertmacro ${_action} ".mp4"
\r
143 !insertmacro ${_action} ".mpeg"
\r
144 !insertmacro ${_action} ".mpeg1"
\r
145 !insertmacro ${_action} ".mpeg2"
\r
146 !insertmacro ${_action} ".mpeg4"
\r
147 !insertmacro ${_action} ".mpg"
\r
148 !insertmacro ${_action} ".mxf"
\r
149 !insertmacro ${_action} ".ps"
\r
150 !insertmacro ${_action} ".ts"
\r
151 !insertmacro ${_action} ".ogm"
\r
152 !insertmacro ${_action} ".vob"
\r
153 !insertmacro ${_action} ".wmv"
\r
156 !macro MacroOtherExtensions _action
\r
157 !insertmacro ${_action} ".asx"
\r
158 !insertmacro ${_action} ".bin"
\r
159 !insertmacro ${_action} ".cue"
\r
160 !insertmacro ${_action} ".m3u"
\r
161 !insertmacro ${_action} ".pls"
\r
162 !insertmacro ${_action} ".vlc"
\r
165 !macro MacroAllExtensions _action
\r
166 !insertmacro MacroAudioExtensions ${_action}
\r
167 !insertmacro MacroVideoExtensions ${_action}
\r
168 !insertmacro MacroOtherExtensions ${_action}
\r
171 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
172 ; File type associations ;
\r
173 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
175 Function RegisterExtension
\r
176 ; back up old value for extension $R0 (eg. ".opt")
\r
177 ReadRegStr $1 HKCR "$R0" ""
\r
178 StrCmp $1 "" NoBackup
\r
179 StrCmp $1 "VLC$R0" "NoBackup"
\r
180 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
182 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
183 ReadRegStr $0 HKCR "VLC$R0" ""
\r
184 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
185 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
186 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
187 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
190 Function un.RegisterExtension
\r
191 ;start of restore script
\r
192 ReadRegStr $1 HKCR "$R0" ""
\r
193 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
194 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
195 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
196 DeleteRegKey HKCR "$R0"
\r
199 WriteRegStr HKCR "$R0" "" $1
\r
200 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
202 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
205 !macro RegisterExtensionSection EXT
\r
210 Call RegisterExtension
\r
215 !macro UnRegisterExtensionSection EXT
\r
218 Call un.RegisterExtension
\r
222 !macro WriteRegStrSupportedTypes EXT
\r
223 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
226 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
227 ; Context menu entries ;
\r
228 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
230 !macro AddContextMenuExt EXT
\r
231 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
232 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
234 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
235 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
238 !macro AddContextMenu EXT
\r
240 ReadRegStr $R0 HKCR ${EXT} ""
\r
241 !insertmacro AddContextMenuExt $R0
\r
245 !macro DeleteContextMenuExt EXT
\r
246 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
247 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
250 !macro DeleteContextMenu EXT
\r
252 ReadRegStr $R0 HKCR ${EXT} ""
\r
253 !insertmacro DeleteContextMenuExt $R0
\r
257 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
258 ; Delete prefs and cache ;
\r
259 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
263 !define Index 'Line${__LINE__}'
\r
266 ; this will loop through all the logged users and "virtual" windows users
\r
267 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
269 EnumRegKey $1 HKU "" $0
\r
270 StrCmp $1 "" "${Index}-End"
\r
272 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
273 StrCmp $2 "" "${Index}-Loop"
\r
275 Goto "${Index}-Loop"
\r
282 !macro OpenUninstallLog
\r
283 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
284 FileSeek $UninstallLog 0 END
\r
287 !macro CloseUninstallLog
\r
288 FileClose $UninstallLog
\r
289 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
292 !macro InstallFile FILEREGEX
\r
293 File "${FILEREGEX}"
\r
294 !define Index 'Line${__LINE__}'
\r
295 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
296 StrCmp $0 "" "${Index}-End"
\r
298 StrCmp $1 "" "${Index}-End"
\r
299 FileWrite $UninstallLog "$1$\r$\n"
\r
301 Goto "${Index}-Loop"
\r
306 !macro InstallFolder FOLDER
\r
307 File /r "${FOLDER}"
\r
309 Call InstallFolderInternal
\r
312 Function InstallFolderInternal
\r
314 !define Index 'Line${__LINE__}'
\r
315 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
316 StrCmp $0 "" "${Index}-End"
\r
318 StrCmp $1 "" "${Index}-End"
\r
319 StrCmp $1 "." "${Index}-Next"
\r
320 StrCmp $1 ".." "${Index}-Next"
\r
321 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
325 Call InstallFolderInternal
\r
328 Goto "${Index}-Next"
\r
330 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
333 Goto "${Index}-Loop"
\r
339 ;;;;;;;;;;;;;;;;;;;;;;
\r
340 ; Installer sections ;
\r
341 ;;;;;;;;;;;;;;;;;;;;;;
\r
343 Section "Media player (required)" SEC01
\r
345 SetShellVarContext all
\r
346 SetOutPath "$INSTDIR"
\r
348 !insertmacro OpenUninstallLog
\r
350 !insertmacro InstallFile vlc.exe
\r
351 !insertmacro InstallFile vlc.exe.manifest
\r
353 !insertmacro InstallFile ${LIBVLC_DLL}
\r
355 !ifdef LIBVLC_CONTROL_DLL
\r
356 !insertmacro InstallFile ${LIBVLC_CONTROL_DLL}
\r
358 !insertmacro InstallFile *.txt
\r
360 !insertmacro InstallFolder plugins
\r
361 !insertmacro InstallFolder locale
\r
362 !insertmacro InstallFolder osdmenu
\r
363 !insertmacro InstallFolder skins
\r
364 !insertmacro InstallFolder http
\r
365 !insertmacro InstallFolder share
\r
367 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
368 "${PRODUCT_WEB_SITE}"
\r
369 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
370 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
371 "${PRODUCT_WEB_SITE}/doc/"
\r
372 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
374 !insertmacro CloseUninstallLog
\r
376 ; Add VLC to "recomended programs" for the following extensions
\r
377 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
378 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
379 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
380 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
381 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
382 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
384 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
385 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
386 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
387 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
388 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
389 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
391 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
392 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
393 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
394 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
395 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
396 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
398 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
399 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
400 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
401 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
402 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
403 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
404 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
405 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
406 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
407 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
408 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
409 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
410 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
411 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
412 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
413 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
417 Section "Start Menu Shortcut" SEC02a
\r
419 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
420 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
421 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
422 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
423 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
424 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
425 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
426 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
427 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
428 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
429 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
430 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
431 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
432 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
433 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
434 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
435 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
436 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
437 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
438 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
439 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
440 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
441 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
442 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
443 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
444 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
445 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
446 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
447 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
448 "$INSTDIR\Documentation.url"
\r
449 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
450 "$INSTDIR\NEWS.txt" ""
\r
451 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
452 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
453 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
454 "$INSTDIR\vlc.exe" ""
\r
457 Section "Desktop Shortcut" SEC02b
\r
459 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
460 "$INSTDIR\vlc.exe" ""
\r
463 Section /o "Mozilla plugin" SEC03
\r
466 SetOutPath "$INSTDIR"
\r
467 !insertmacro OpenUninstallLog
\r
468 !insertmacro InstallFile mozilla\npvlc.dll
\r
469 !insertmacro CloseUninstallLog
\r
471 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
472 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
473 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
474 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
475 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
476 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
478 ; for very old version of mozilla, these lines may be needed
\r
483 ;!define Index 'Line${__LINE__}'
\r
489 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
490 ; StrCmp $R0 "" "${Index}-End"
\r
491 ; IntOp $R1 $R1 + 1
\r
492 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
493 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
495 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
496 ; !ifdef LIBVLC_DLL
\r
497 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
499 ; !ifdef LIBVLC_CONTROL_DLL
\r
500 ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2"
\r
502 ; Goto "${Index}-Loop"
\r
509 Section "ActiveX plugin" SEC04
\r
511 SetOutPath "$INSTDIR"
\r
512 !insertmacro OpenUninstallLog
\r
513 !insertmacro InstallFile activex\axvlc.dll
\r
514 !insertmacro CloseUninstallLog
\r
515 RegDLL "$INSTDIR\axvlc.dll"
\r
518 SectionGroup "File type associations" SEC06
\r
519 SectionGroup "Audio Files"
\r
520 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
522 SectionGroup "Video Files"
\r
523 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
525 SectionGroup "Other"
\r
526 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
530 Section /o "Context Menus" SEC05
\r
532 !insertmacro MacroAllExtensions AddContextMenu
\r
533 !insertmacro AddContextMenuExt "Directory"
\r
536 Section /o "Delete preferences and cache" SEC07
\r
537 !insertmacro delprefs
\r
540 ; Installer section descriptions
\r
541 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
542 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
543 "The media player itself"
\r
544 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
545 "Adds icons to your start menu for easy access"
\r
546 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
547 "Adds icon to your desktop for easy access"
\r
548 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
549 "The VLC Mozilla and Mozilla Firefox plugin"
\r
550 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
551 "The VLC ActiveX plugin"
\r
552 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
553 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
554 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
555 "Sets VLC media player as the default application for the specified file type"
\r
556 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
557 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
558 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
561 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
565 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
566 "VLC media player has already been installed. $\nDo you want to remove \
\r
567 the previous version before installing $(^Name) ?" \
\r
570 ;Run the uninstaller
\r
573 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
575 !insertmacro MUI_LANGDLL_DISPLAY
\r
579 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
580 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
581 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
582 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
584 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
585 "DisplayName" "$(^Name)"
\r
586 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
587 "UninstallString" "$INSTDIR\uninstall.exe"
\r
588 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
589 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
590 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
591 "DisplayVersion" "${PRODUCT_VERSION}"
\r
592 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
593 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
594 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
595 "Publisher" "${PRODUCT_PUBLISHER}"
\r
598 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
599 ; Uninstaller sections ;
\r
600 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
602 ; TrimNewlines (copied from NSIS documentation)
\r
603 ; input, top of stack (e.g. whatever$\r$\n)
\r
604 ; output, top of stack (replaces, with e.g. whatever)
\r
605 ; modifies no other variables.
\r
607 Function un.TrimNewlines
\r
615 StrCpy $R2 $R0 1 $R1
\r
616 StrCmp $R2 "$\r" loop
\r
617 StrCmp $R2 "$\n" loop
\r
619 IntCmp $R1 0 no_trim_needed
\r
628 Function un.RemoveEmptyDirs
\r
630 !define Index 'Line${__LINE__}'
\r
631 FindFirst $0 $1 "$INSTDIR$9*"
\r
632 StrCmp $0 "" "${Index}-End"
\r
634 StrCmp $1 "" "${Index}-End"
\r
635 StrCmp $1 "." "${Index}-Next"
\r
636 StrCmp $1 ".." "${Index}-Next"
\r
641 Call un.RemoveEmptyDirs
\r
646 RMDir "$INSTDIR$9$1"
\r
649 Goto "${Index}-Loop"
\r
655 Section "Uninstall" SEC91
\r
657 SetShellVarContext all
\r
659 !insertmacro MacroAllExtensions DeleteContextMenu
\r
660 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
661 !insertmacro DeleteContextMenuExt "Directory"
\r
663 ;remove activex plugin
\r
664 UnRegDLL "$INSTDIR\axvlc.dll"
\r
665 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
667 ;remove mozilla plugin
\r
672 !define Index 'Line${__LINE__}'
\r
678 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
679 StrCmp $R0 "" "${Index}-End"
\r
681 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
682 StrCmp $R2 "" "${Index}-Loop" ""
\r
684 ; old files (0.8.5 and before) that may be lying around
\r
685 Delete /REBOOTOK "$R2\npvlc.dll"
\r
686 Delete /REBOOTOK "$R2\libvlc.dll"
\r
687 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
688 Goto "${Index}-Loop"
\r
692 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
694 RMDir "$SMPROGRAMS\VideoLAN"
\r
695 RMDir /r $SMPROGRAMS\VideoLAN
\r
697 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
700 FileRead $UninstallLog $R0
\r
701 IfErrors UninstallEnd
\r
703 Call un.TrimNewLines
\r
705 Delete "$INSTDIR\$R0"
\r
708 FileClose $UninstallLog
\r
709 Delete "$INSTDIR\uninstall.log"
\r
710 Delete "$INSTDIR\uninstall.exe"
\r
712 Call un.RemoveEmptyDirs
\r
715 DeleteRegKey HKLM Software\VideoLAN
\r
717 DeleteRegKey HKCR Applications\vlc.exe
\r
718 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
719 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
720 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
721 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
722 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
723 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
724 DeleteRegKey HKCR "VLC.MediaFile"
\r
726 DeleteRegKey HKLM \
\r
727 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
729 DeleteRegKey HKLM \
\r
730 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
732 Delete "$DESKTOP\VLC media player.lnk"
\r
734 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
735 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
739 Section /o "un.Delete preferences and cache" SEC92
\r
740 !insertmacro delprefs
\r
743 ; Uninstaller section descriptions
\r
744 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
745 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
746 "Uninstall VLC media player and all its components"
\r
747 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
748 "Deletes VLC media player preferences and cache files"
\r
749 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
751 ;Function un.onUninstSuccess
\r
753 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
754 ; "$(^Name) was successfully removed from your computer."
\r
758 !insertmacro MUI_UNGETLANGUAGE
\r