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} ".ps"
\r
149 !insertmacro ${_action} ".ts"
\r
150 !insertmacro ${_action} ".ogm"
\r
151 !insertmacro ${_action} ".vob"
\r
152 !insertmacro ${_action} ".wmv"
\r
155 !macro MacroOtherExtensions _action
\r
156 !insertmacro ${_action} ".asx"
\r
157 !insertmacro ${_action} ".bin"
\r
158 !insertmacro ${_action} ".cue"
\r
159 !insertmacro ${_action} ".m3u"
\r
160 !insertmacro ${_action} ".pls"
\r
161 !insertmacro ${_action} ".vlc"
\r
164 !macro MacroAllExtensions _action
\r
165 !insertmacro MacroAudioExtensions ${_action}
\r
166 !insertmacro MacroVideoExtensions ${_action}
\r
167 !insertmacro MacroOtherExtensions ${_action}
\r
170 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
171 ; File type associations ;
\r
172 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
174 Function RegisterExtension
\r
175 ; back up old value for extension $R0 (eg. ".opt")
\r
176 ReadRegStr $1 HKCR "$R0" ""
\r
177 StrCmp $1 "" NoBackup
\r
178 StrCmp $1 "VLC$R0" "NoBackup"
\r
179 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
181 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
182 ReadRegStr $0 HKCR "VLC$R0" ""
\r
183 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
184 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
185 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
186 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
189 Function un.RegisterExtension
\r
190 ;start of restore script
\r
191 ReadRegStr $1 HKCR "$R0" ""
\r
192 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
193 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
194 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
195 DeleteRegKey HKCR "$R0"
\r
198 WriteRegStr HKCR "$R0" "" $1
\r
199 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
201 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
204 !macro RegisterExtensionSection EXT
\r
209 Call RegisterExtension
\r
214 !macro UnRegisterExtensionSection EXT
\r
217 Call un.RegisterExtension
\r
221 !macro WriteRegStrSupportedTypes EXT
\r
222 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
225 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
226 ; Context menu entries ;
\r
227 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
229 !macro AddContextMenuExt EXT
\r
230 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
231 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
233 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
234 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
237 !macro AddContextMenu EXT
\r
239 ReadRegStr $R0 HKCR ${EXT} ""
\r
240 !insertmacro AddContextMenuExt $R0
\r
244 !macro DeleteContextMenuExt EXT
\r
245 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
246 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
249 !macro DeleteContextMenu EXT
\r
251 ReadRegStr $R0 HKCR ${EXT} ""
\r
252 !insertmacro DeleteContextMenuExt $R0
\r
256 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
257 ; Delete prefs and cache ;
\r
258 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
262 !define Index 'Line${__LINE__}'
\r
265 ; this will loop through all the logged users and "virtual" windows users
\r
266 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
268 EnumRegKey $1 HKU "" $0
\r
269 StrCmp $1 "" "${Index}-End"
\r
271 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
272 StrCmp $2 "" "${Index}-Loop"
\r
274 Goto "${Index}-Loop"
\r
281 !macro OpenUninstallLog
\r
282 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
283 FileSeek $UninstallLog 0 END
\r
286 !macro CloseUninstallLog
\r
287 FileClose $UninstallLog
\r
288 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
291 !macro InstallFile FILEREGEX
\r
292 File "${FILEREGEX}"
\r
293 !define Index 'Line${__LINE__}'
\r
294 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
295 StrCmp $0 "" "${Index}-End"
\r
297 StrCmp $1 "" "${Index}-End"
\r
298 FileWrite $UninstallLog "$1$\r$\n"
\r
300 Goto "${Index}-Loop"
\r
305 !macro InstallFolder FOLDER
\r
306 File /r "${FOLDER}"
\r
308 Call InstallFolderInternal
\r
311 Function InstallFolderInternal
\r
313 !define Index 'Line${__LINE__}'
\r
314 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
315 StrCmp $0 "" "${Index}-End"
\r
317 StrCmp $1 "" "${Index}-End"
\r
318 StrCmp $1 "." "${Index}-Next"
\r
319 StrCmp $1 ".." "${Index}-Next"
\r
320 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
324 Call InstallFolderInternal
\r
327 Goto "${Index}-Next"
\r
329 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
332 Goto "${Index}-Loop"
\r
338 ;;;;;;;;;;;;;;;;;;;;;;
\r
339 ; Installer sections ;
\r
340 ;;;;;;;;;;;;;;;;;;;;;;
\r
342 Section "Media player (required)" SEC01
\r
344 SetShellVarContext all
\r
345 SetOutPath "$INSTDIR"
\r
347 !insertmacro OpenUninstallLog
\r
349 !insertmacro InstallFile vlc.exe
\r
350 !insertmacro InstallFile vlc.exe.manifest
\r
352 !insertmacro InstallFile ${LIBVLC_DLL}
\r
354 !ifdef LIBVLC_CONTROL_DLL
\r
355 !insertmacro InstallFile ${LIBVLC_CONTROL_DLL}
\r
357 !insertmacro InstallFile *.txt
\r
359 !insertmacro InstallFolder plugins
\r
360 !insertmacro InstallFolder locale
\r
361 !insertmacro InstallFolder osdmenu
\r
362 !insertmacro InstallFolder skins
\r
363 !insertmacro InstallFolder http
\r
365 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
366 "${PRODUCT_WEB_SITE}"
\r
367 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
368 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
369 "${PRODUCT_WEB_SITE}/doc/"
\r
370 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
372 !insertmacro CloseUninstallLog
\r
374 ; Add VLC to "recomended programs" for the following extensions
\r
375 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
376 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
377 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
378 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
379 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
380 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
382 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
383 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
384 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
385 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
386 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
387 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
389 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
390 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
391 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
392 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
393 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
394 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
396 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
397 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
398 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
399 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
400 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
401 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
402 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
403 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
404 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
405 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
406 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
407 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
408 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
409 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
410 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
411 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
415 Section "Start Menu Shortcut" SEC02a
\r
417 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
418 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
419 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
420 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
421 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
422 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
423 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
424 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
425 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
426 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
427 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
428 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
429 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
430 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
431 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
432 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
433 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
434 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
435 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
436 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
437 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
438 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
439 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
440 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
441 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
442 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
443 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
444 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
445 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
446 "$INSTDIR\Documentation.url"
\r
447 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
448 "$INSTDIR\NEWS.txt" ""
\r
449 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
450 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
451 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
452 "$INSTDIR\vlc.exe" ""
\r
455 Section "Desktop Shortcut" SEC02b
\r
457 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
458 "$INSTDIR\vlc.exe" ""
\r
461 Section /o "Mozilla plugin" SEC03
\r
464 SetOutPath "$INSTDIR"
\r
465 !insertmacro OpenUninstallLog
\r
466 !insertmacro InstallFile mozilla\npvlc.dll
\r
467 !insertmacro CloseUninstallLog
\r
469 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
470 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
471 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
472 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
473 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
474 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
476 ; for very old version of mozilla, these lines may be needed
\r
481 ;!define Index 'Line${__LINE__}'
\r
487 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
488 ; StrCmp $R0 "" "${Index}-End"
\r
489 ; IntOp $R1 $R1 + 1
\r
490 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
491 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
493 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
494 ; !ifdef LIBVLC_DLL
\r
495 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
497 ; !ifdef LIBVLC_CONTROL_DLL
\r
498 ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2"
\r
500 ; Goto "${Index}-Loop"
\r
507 Section "ActiveX plugin" SEC04
\r
509 SetOutPath "$INSTDIR"
\r
510 !insertmacro OpenUninstallLog
\r
511 !insertmacro InstallFile activex\axvlc.dll
\r
512 !insertmacro CloseUninstallLog
\r
513 RegDLL "$INSTDIR\axvlc.dll"
\r
516 SectionGroup "File type associations" SEC06
\r
517 SectionGroup "Audio Files"
\r
518 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
520 SectionGroup "Video Files"
\r
521 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
523 SectionGroup "Other"
\r
524 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
528 Section /o "Context Menus" SEC05
\r
530 !insertmacro MacroAllExtensions AddContextMenu
\r
531 !insertmacro AddContextMenuExt "Directory"
\r
534 Section /o "Delete preferences and cache" SEC07
\r
535 !insertmacro delprefs
\r
538 ; Installer section descriptions
\r
539 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
540 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
541 "The media player itself"
\r
542 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
543 "Adds icons to your start menu for easy access"
\r
544 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
545 "Adds icon to your desktop for easy access"
\r
546 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
547 "The VLC Mozilla and Mozilla Firefox plugin"
\r
548 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
549 "The VLC ActiveX plugin"
\r
550 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
551 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
552 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
553 "Sets VLC media player as the default application for the specified file type"
\r
554 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
555 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
556 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
559 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
563 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
564 "VLC media player has already been installed. $\nDo you want to remove \
\r
565 the previous version before installing $(^Name) ?" \
\r
568 ;Run the uninstaller
\r
571 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
573 !insertmacro MUI_LANGDLL_DISPLAY
\r
577 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
578 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
579 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
580 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
582 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
583 "DisplayName" "$(^Name)"
\r
584 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
585 "UninstallString" "$INSTDIR\uninstall.exe"
\r
586 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
587 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
588 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
589 "DisplayVersion" "${PRODUCT_VERSION}"
\r
590 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
591 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
592 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
593 "Publisher" "${PRODUCT_PUBLISHER}"
\r
596 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
597 ; Uninstaller sections ;
\r
598 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
600 ; TrimNewlines (copied from NSIS documentation)
\r
601 ; input, top of stack (e.g. whatever$\r$\n)
\r
602 ; output, top of stack (replaces, with e.g. whatever)
\r
603 ; modifies no other variables.
\r
605 Function un.TrimNewlines
\r
613 StrCpy $R2 $R0 1 $R1
\r
614 StrCmp $R2 "$\r" loop
\r
615 StrCmp $R2 "$\n" loop
\r
617 IntCmp $R1 0 no_trim_needed
\r
626 Function un.RemoveEmptyDirs
\r
628 !define Index 'Line${__LINE__}'
\r
629 FindFirst $0 $1 "$INSTDIR$9*"
\r
630 StrCmp $0 "" "${Index}-End"
\r
632 StrCmp $1 "" "${Index}-End"
\r
633 StrCmp $1 "." "${Index}-Next"
\r
634 StrCmp $1 ".." "${Index}-Next"
\r
639 Call un.RemoveEmptyDirs
\r
644 RMDir "$INSTDIR$9$1"
\r
647 Goto "${Index}-Loop"
\r
653 Section "Uninstall" SEC91
\r
655 SetShellVarContext all
\r
657 !insertmacro MacroAllExtensions DeleteContextMenu
\r
658 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
659 !insertmacro DeleteContextMenuExt "Directory"
\r
661 ;remove activex plugin
\r
662 UnRegDLL "$INSTDIR\axvlc.dll"
\r
663 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
665 ;remove mozilla plugin
\r
670 !define Index 'Line${__LINE__}'
\r
676 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
677 StrCmp $R0 "" "${Index}-End"
\r
679 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
680 StrCmp $R2 "" "${Index}-Loop" ""
\r
682 ; old files (0.8.5 and before) that may be lying around
\r
683 Delete /REBOOTOK "$R2\npvlc.dll"
\r
684 Delete /REBOOTOK "$R2\libvlc.dll"
\r
685 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
686 Goto "${Index}-Loop"
\r
690 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
692 RMDir "$SMPROGRAMS\VideoLAN"
\r
693 RMDir /r $SMPROGRAMS\VideoLAN
\r
695 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
698 FileRead $UninstallLog $R0
\r
699 IfErrors UninstallEnd
\r
701 Call un.TrimNewLines
\r
703 Delete "$INSTDIR\$R0"
\r
706 FileClose $UninstallLog
\r
707 Delete "$INSTDIR\uninstall.log"
\r
708 Delete "$INSTDIR\uninstall.exe"
\r
710 Call un.RemoveEmptyDirs
\r
713 DeleteRegKey HKLM Software\VideoLAN
\r
715 DeleteRegKey HKCR Applications\vlc.exe
\r
716 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
717 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
718 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
719 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
720 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
721 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
722 DeleteRegKey HKCR "VLC.MediaFile"
\r
724 DeleteRegKey HKLM \
\r
725 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
727 DeleteRegKey HKLM \
\r
728 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
730 Delete "$DESKTOP\VLC media player.lnk"
\r
732 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
733 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
737 Section /o "un.Delete preferences and cache" SEC92
\r
738 !insertmacro delprefs
\r
741 ; Uninstaller section descriptions
\r
742 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
743 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
744 "Uninstall VLC media player and all its components"
\r
745 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
746 "Deletes VLC media player preferences and cache files"
\r
747 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
749 ;Function un.onUninstSuccess
\r
751 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
752 ; "$(^Name) was successfully removed from your computer."
\r
756 !insertmacro MUI_UNGETLANGUAGE
\r