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
22 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
23 ; General configuration ;
\r
24 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
26 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
27 OutFile ..\vlc-${VERSION}-win32.exe
\r
28 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
29 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
30 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
33 SetCompressor /SOLID lzma
\r
35 ;ShowInstDetails show
\r
36 ;ShowUnInstDetails show
\r
37 SetOverwrite ifnewer
\r
40 InstType "Recommended"
\r
44 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
45 ; NSIS Modern User Interface configuration ;
\r
46 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
48 ; MUI 1.67 compatible ------
\r
52 !define MUI_ABORTWARNING
\r
53 !define MUI_ICON "vlc48x48.ico"
\r
54 !define MUI_UNICON "vlc48x48.ico"
\r
55 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
59 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
60 !insertmacro MUI_PAGE_WELCOME
\r
62 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
64 !insertmacro MUI_PAGE_COMPONENTS
\r
66 !insertmacro MUI_PAGE_DIRECTORY
\r
68 !insertmacro MUI_PAGE_INSTFILES
\r
70 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
71 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
72 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
73 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
74 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
75 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
76 !insertmacro MUI_PAGE_FINISH
\r
79 !insertmacro MUI_UNPAGE_CONFIRM
\r
80 !insertmacro MUI_UNPAGE_COMPONENTS
\r
81 !insertmacro MUI_UNPAGE_INSTFILES
\r
82 !insertmacro MUI_UNPAGE_FINISH
\r
85 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
86 !insertmacro MUI_LANGUAGE "French"
\r
87 !insertmacro MUI_LANGUAGE "German"
\r
88 !insertmacro MUI_LANGUAGE "Spanish"
\r
89 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
90 !insertmacro MUI_LANGUAGE "TradChinese"
\r
91 !insertmacro MUI_LANGUAGE "Japanese"
\r
92 !insertmacro MUI_LANGUAGE "Korean"
\r
93 !insertmacro MUI_LANGUAGE "Italian"
\r
94 !insertmacro MUI_LANGUAGE "Dutch"
\r
95 !insertmacro MUI_LANGUAGE "Danish"
\r
96 !insertmacro MUI_LANGUAGE "Swedish"
\r
97 !insertmacro MUI_LANGUAGE "Norwegian"
\r
98 !insertmacro MUI_LANGUAGE "Finnish"
\r
99 !insertmacro MUI_LANGUAGE "Greek"
\r
100 !insertmacro MUI_LANGUAGE "Russian"
\r
101 !insertmacro MUI_LANGUAGE "Portuguese"
\r
102 !insertmacro MUI_LANGUAGE "Arabic"
\r
103 !insertmacro MUI_LANGUAGE "Polish"
\r
105 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
108 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
112 ;;;;;;;;;;;;;;;;;;;
\r
113 ; Extension lists ;
\r
114 ;;;;;;;;;;;;;;;;;;;
\r
116 !macro MacroAudioExtensions _action
\r
117 !insertmacro ${_action} ".a52"
\r
118 !insertmacro ${_action} ".aac"
\r
119 !insertmacro ${_action} ".ac3"
\r
120 !insertmacro ${_action} ".dts"
\r
121 !insertmacro ${_action} ".flac"
\r
122 !insertmacro ${_action} ".mka"
\r
123 !insertmacro ${_action} ".mp1"
\r
124 !insertmacro ${_action} ".mp2"
\r
125 !insertmacro ${_action} ".mp3"
\r
126 !insertmacro ${_action} ".ogg"
\r
127 !insertmacro ${_action} ".spx"
\r
128 !insertmacro ${_action} ".wav"
\r
129 !insertmacro ${_action} ".wma"
\r
132 !macro MacroVideoExtensions _action
\r
133 !insertmacro ${_action} ".asf"
\r
134 !insertmacro ${_action} ".avi"
\r
135 !insertmacro ${_action} ".divx"
\r
136 !insertmacro ${_action} ".dv"
\r
137 !insertmacro ${_action} ".m1v"
\r
138 !insertmacro ${_action} ".m2v"
\r
139 !insertmacro ${_action} ".mkv"
\r
140 !insertmacro ${_action} ".mov"
\r
141 !insertmacro ${_action} ".mp4"
\r
142 !insertmacro ${_action} ".mpeg"
\r
143 !insertmacro ${_action} ".mpeg1"
\r
144 !insertmacro ${_action} ".mpeg2"
\r
145 !insertmacro ${_action} ".mpeg4"
\r
146 !insertmacro ${_action} ".mpg"
\r
147 !insertmacro ${_action} ".ps"
\r
148 !insertmacro ${_action} ".ts"
\r
149 !insertmacro ${_action} ".ogm"
\r
150 !insertmacro ${_action} ".vob"
\r
151 !insertmacro ${_action} ".wmv"
\r
154 !macro MacroOtherExtensions _action
\r
155 !insertmacro ${_action} ".asx"
\r
156 !insertmacro ${_action} ".bin"
\r
157 !insertmacro ${_action} ".cue"
\r
158 !insertmacro ${_action} ".m3u"
\r
159 !insertmacro ${_action} ".pls"
\r
160 !insertmacro ${_action} ".vlc"
\r
163 !macro MacroAllExtensions _action
\r
164 !insertmacro MacroAudioExtensions ${_action}
\r
165 !insertmacro MacroVideoExtensions ${_action}
\r
166 !insertmacro MacroOtherExtensions ${_action}
\r
169 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
170 ; File type associations ;
\r
171 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
173 Function RegisterExtension
\r
174 ; back up old value for extension $R0 (eg. ".opt")
\r
175 ReadRegStr $1 HKCR "$R0" ""
\r
176 StrCmp $1 "" NoBackup
\r
177 StrCmp $1 "VLC$R0" "NoBackup"
\r
178 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
180 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
181 ReadRegStr $0 HKCR "VLC$R0" ""
\r
182 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
183 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
184 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
185 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
188 Function un.RegisterExtension
\r
189 ;start of restore script
\r
190 ReadRegStr $1 HKCR "$R0" ""
\r
191 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
192 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
193 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
194 DeleteRegKey HKCR "$R0"
\r
197 WriteRegStr HKCR "$R0" "" $1
\r
198 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
200 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
203 !macro RegisterExtensionSection EXT
\r
208 Call RegisterExtension
\r
213 !macro UnRegisterExtensionSection EXT
\r
216 Call un.RegisterExtension
\r
220 !macro WriteRegStrSupportedTypes EXT
\r
221 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
224 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
225 ; Context menu entries ;
\r
226 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
228 !macro AddContextMenu EXT
\r
229 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
230 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
232 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
233 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
236 !macro DeleteContextMenu EXT
\r
237 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
238 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
241 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
242 ; Delete prefs and cache ;
\r
243 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
247 !define Index 'Line${__LINE__}'
\r
250 ; this will loop through all the logged users and "virtual" windows users
\r
251 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
253 EnumRegKey $1 HKU "" $0
\r
254 StrCmp $1 "" "${Index}-End"
\r
256 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
257 StrCmp $2 "" "${Index}-Loop"
\r
259 Goto "${Index}-Loop"
\r
266 !macro OpenUninstallLog
\r
267 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
268 FileSeek $UninstallLog 0 END
\r
271 !macro CloseUninstallLog
\r
272 FileClose $UninstallLog
\r
273 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
276 !macro InstallFile FILEREGEX
\r
277 File "${FILEREGEX}"
\r
278 !define Index 'Line${__LINE__}'
\r
279 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
280 StrCmp $0 "" "${Index}-End"
\r
282 StrCmp $1 "" "${Index}-End"
\r
283 FileWrite $UninstallLog "$1$\r$\n"
\r
285 Goto "${Index}-Loop"
\r
290 !macro InstallFolder FOLDER
\r
291 File /r "${FOLDER}"
\r
293 Call InstallFolderInternal
\r
296 Function InstallFolderInternal
\r
298 !define Index 'Line${__LINE__}'
\r
299 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
300 StrCmp $0 "" "${Index}-End"
\r
302 StrCmp $1 "" "${Index}-End"
\r
303 StrCmp $1 "." "${Index}-Next"
\r
304 StrCmp $1 ".." "${Index}-Next"
\r
305 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
309 Call InstallFolderInternal
\r
312 Goto "${Index}-Next"
\r
314 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
317 Goto "${Index}-Loop"
\r
323 ;;;;;;;;;;;;;;;;;;;;;;
\r
324 ; Installer sections ;
\r
325 ;;;;;;;;;;;;;;;;;;;;;;
\r
327 Section "Media player (required)" SEC01
\r
329 SetShellVarContext all
\r
330 SetOutPath "$INSTDIR"
\r
332 !insertmacro OpenUninstallLog
\r
334 !insertmacro InstallFile vlc.exe
\r
335 !insertmacro InstallFile vlc.exe.manifest
\r
337 !insertmacro InstallFile ${LIBVLC_DLL}
\r
339 !insertmacro InstallFile *.txt
\r
341 !insertmacro InstallFolder plugins
\r
342 !insertmacro InstallFolder locale
\r
343 !insertmacro InstallFolder osdmenu
\r
344 !insertmacro InstallFolder skins
\r
345 !insertmacro InstallFolder http
\r
347 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
348 "${PRODUCT_WEB_SITE}"
\r
349 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
350 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
351 "${PRODUCT_WEB_SITE}/doc/"
\r
352 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
354 !insertmacro CloseUninstallLog
\r
356 ; Add VLC to "recomended programs" for the following extensions
\r
357 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
358 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
359 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
360 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
361 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
362 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
364 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
365 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
366 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
367 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
368 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
369 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
371 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
372 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
373 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
374 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
375 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
376 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
378 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
379 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
380 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
381 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
382 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
383 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
384 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
385 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
386 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
387 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
388 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
389 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
390 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
391 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
392 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
393 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
397 Section "Start Menu Shortcut" SEC02a
\r
399 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
400 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
401 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
402 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
403 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
404 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
405 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
406 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
407 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
408 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
409 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
410 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
411 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
412 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
413 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
414 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
415 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
416 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
417 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
418 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
419 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
420 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
421 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
422 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
423 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
424 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
425 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
426 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
427 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
428 "$INSTDIR\Documentation.url"
\r
429 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
430 "$INSTDIR\NEWS.txt" ""
\r
431 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
432 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
433 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
434 "$INSTDIR\vlc.exe" ""
\r
437 Section "Desktop Shortcut" SEC02b
\r
439 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
440 "$INSTDIR\vlc.exe" ""
\r
443 Section /o "Mozilla plugin" SEC03
\r
446 SetOutPath "$INSTDIR"
\r
447 !insertmacro OpenUninstallLog
\r
448 !insertmacro InstallFile mozilla\npvlc.dll
\r
449 !insertmacro CloseUninstallLog
\r
451 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
452 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
453 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
454 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
455 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
456 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
458 ; for very old version of mozilla, these lines may be needed
\r
463 ;!define Index 'Line${__LINE__}'
\r
469 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
470 ; StrCmp $R0 "" "${Index}-End"
\r
471 ; IntOp $R1 $R1 + 1
\r
472 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
473 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
475 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
476 ; !ifdef LIBVLC_DLL
\r
477 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
479 ; Goto "${Index}-Loop"
\r
486 Section "ActiveX plugin" SEC04
\r
488 SetOutPath "$INSTDIR"
\r
489 !insertmacro OpenUninstallLog
\r
490 !insertmacro InstallFile activex\axvlc.dll
\r
491 !insertmacro CloseUninstallLog
\r
492 RegDLL "$INSTDIR\axvlc.dll"
\r
495 Section /o "Context Menus" SEC05
\r
497 !insertmacro MacroAllExtensions AddContextMenu
\r
498 !insertmacro AddContextMenu "Directory"
\r
501 SectionGroup "File type associations" SEC06
\r
502 SectionGroup "Audio Files"
\r
503 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
505 SectionGroup "Video Files"
\r
506 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
508 SectionGroup "Other"
\r
509 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
513 Section /o "Delete preferences and cache" SEC07
\r
514 !insertmacro delprefs
\r
517 ; Installer section descriptions
\r
518 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
519 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
520 "The media player itself"
\r
521 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
522 "Adds icons to your start menu for easy access"
\r
523 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
524 "Adds icon to your desktop for easy access"
\r
525 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
526 "The VLC Mozilla and Mozilla Firefox plugin"
\r
527 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
528 "The VLC ActiveX plugin"
\r
529 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
530 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
531 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
532 "Sets VLC media player as the default application for the specified file type"
\r
533 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
534 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
535 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
538 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
542 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
543 "VLC media player has already been installed. $\nDo you want to remove \
\r
544 the previous version before installing $(^Name) ?" \
\r
547 ;Run the uninstaller
\r
550 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
552 !insertmacro MUI_LANGDLL_DISPLAY
\r
556 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
557 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
558 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
559 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
561 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
562 "DisplayName" "$(^Name)"
\r
563 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
564 "UninstallString" "$INSTDIR\uninstall.exe"
\r
565 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
566 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
567 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
568 "DisplayVersion" "${PRODUCT_VERSION}"
\r
569 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
570 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
571 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
572 "Publisher" "${PRODUCT_PUBLISHER}"
\r
575 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
576 ; Uninstaller sections ;
\r
577 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
579 ; TrimNewlines (copied from NSIS documentation)
\r
580 ; input, top of stack (e.g. whatever$\r$\n)
\r
581 ; output, top of stack (replaces, with e.g. whatever)
\r
582 ; modifies no other variables.
\r
584 Function un.TrimNewlines
\r
592 StrCpy $R2 $R0 1 $R1
\r
593 StrCmp $R2 "$\r" loop
\r
594 StrCmp $R2 "$\n" loop
\r
596 IntCmp $R1 0 no_trim_needed
\r
605 Function un.RemoveEmptyDirs
\r
607 !define Index 'Line${__LINE__}'
\r
608 FindFirst $0 $1 "$INSTDIR$9*"
\r
609 StrCmp $0 "" "${Index}-End"
\r
611 StrCmp $1 "" "${Index}-End"
\r
612 StrCmp $1 "." "${Index}-Next"
\r
613 StrCmp $1 ".." "${Index}-Next"
\r
618 Call un.RemoveEmptyDirs
\r
623 RMDir "$INSTDIR$9$1"
\r
626 Goto "${Index}-Loop"
\r
632 Section "Uninstall" SEC91
\r
634 SetShellVarContext all
\r
636 !insertmacro MacroAllExtensions DeleteContextMenu
\r
637 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
638 !insertmacro DeleteContextMenu "Directory"
\r
640 ;remove activex plugin
\r
641 UnRegDLL "$INSTDIR\axvlc.dll"
\r
642 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
644 ;remove mozilla plugin
\r
649 !define Index 'Line${__LINE__}'
\r
655 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
656 StrCmp $R0 "" "${Index}-End"
\r
658 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
659 StrCmp $R2 "" "${Index}-Loop" ""
\r
661 ; old files (0.8.5 and before) that may be lying around
\r
662 Delete /REBOOTOK "$R2\npvlc.dll"
\r
663 Delete /REBOOTOK "$R2\libvlc.dll"
\r
664 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
665 Goto "${Index}-Loop"
\r
669 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
671 RMDir "$SMPROGRAMS\VideoLAN"
\r
672 RMDir /r $SMPROGRAMS\VideoLAN
\r
674 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
677 FileRead $UninstallLog $R0
\r
678 IfErrors UninstallEnd
\r
680 Call un.TrimNewLines
\r
682 Delete "$INSTDIR\$R0"
\r
685 FileClose $UninstallLog
\r
686 Delete "$INSTDIR\uninstall.log"
\r
687 Delete "$INSTDIR\uninstall.exe"
\r
689 Call un.RemoveEmptyDirs
\r
692 DeleteRegKey HKLM Software\VideoLAN
\r
694 DeleteRegKey HKCR Applications\vlc.exe
\r
695 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
696 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
697 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
698 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
699 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
700 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
701 DeleteRegKey HKCR "VLC.MediaFile"
\r
703 DeleteRegKey HKLM \
\r
704 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
706 DeleteRegKey HKLM \
\r
707 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
709 Delete "$DESKTOP\VLC media player.lnk"
\r
711 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
712 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
716 Section /o "un.Delete preferences and cache" SEC92
\r
717 !insertmacro delprefs
\r
720 ; Uninstaller section descriptions
\r
721 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
722 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
723 "Uninstall VLC media player and all its components"
\r
724 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
725 "Deletes VLC media player preferences and cache files"
\r
726 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
728 ;Function un.onUninstSuccess
\r
730 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
731 ; "$(^Name) was successfully removed from your computer."
\r
735 !insertmacro MUI_UNGETLANGUAGE
\r