1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; NSIS installer script for vlc ;
3 ; (http://nsis.sourceforge.net) ;
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 !include "languages\declaration.nsh"
8 !define PRODUCT_NAME "VLC media player"
9 !define VERSION @VERSION@
10 !define PRODUCT_VERSION @VERSION@
11 !define PRODUCT_GROUP "VideoLAN"
12 !define PRODUCT_PUBLISHER "VideoLAN Team"
13 !define PRODUCT_WEB_SITE "http://www.videolan.org"
14 !define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC"
15 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
16 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
17 !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"
19 !define MUI_LANGDLL_REGISTRY_ROOT "HKLM"
20 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}"
21 !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
23 @BUILD_ACTIVEX_TRUE@ !define INSTALL_ACTIVEX
24 @BUILD_MOZILLA_TRUE@ !define INSTALL_MOZILLA
29 ;;;;;;;;;;;;;;;;;;;;;;;;;
30 ; General configuration ;
31 ;;;;;;;;;;;;;;;;;;;;;;;;;
33 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
34 OutFile ..\vlc-${VERSION}-win32.exe
35 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
36 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
37 !ifdef NSIS_LZMA_COMPRESS_WHOLE
40 SetCompressor /SOLID lzma
45 BrandingText "${PRODUCT_GROUP} ${PRODUCT_NAME}"
47 InstType $Name_InstTypeRecommended
48 InstType $Name_InstTypeMinimum
49 InstType $Name_InstTypeFull
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52 ; NSIS Modern User Interface configuration ;
53 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55 ; MUI 1.67 compatible ------
59 !define MUI_ABORTWARNING
60 !define MUI_ICON "vlc.ico"
61 !define MUI_UNICON "vlc.ico"
62 !define MUI_COMPONENTSPAGE_SMALLDESC
66 !define MUI_WELCOMEPAGE_TITLE_3LINES
67 !insertmacro MUI_PAGE_WELCOME
69 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
71 !insertmacro MUI_PAGE_COMPONENTS
73 !insertmacro MUI_PAGE_DIRECTORY
75 !insertmacro MUI_PAGE_INSTFILES
77 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
78 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
79 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
80 !define MUI_FINISHPAGE_LINK $Link_VisitWebsite
81 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
82 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
83 !insertmacro MUI_PAGE_FINISH
86 !insertmacro MUI_UNPAGE_CONFIRM
87 !insertmacro MUI_UNPAGE_COMPONENTS
88 !insertmacro MUI_UNPAGE_INSTFILES
89 !insertmacro MUI_UNPAGE_FINISH
92 !insertmacro MUI_LANGUAGE "English" # first language is the default language
93 !insertmacro MUI_LANGUAGE "French"
94 !insertmacro MUI_LANGUAGE "German"
95 !insertmacro MUI_LANGUAGE "Spanish"
96 !insertmacro MUI_LANGUAGE "SimpChinese"
97 !insertmacro MUI_LANGUAGE "TradChinese"
98 !insertmacro MUI_LANGUAGE "Japanese"
99 !insertmacro MUI_LANGUAGE "Korean"
100 !insertmacro MUI_LANGUAGE "Italian"
101 !insertmacro MUI_LANGUAGE "Dutch"
102 !insertmacro MUI_LANGUAGE "Danish"
103 !insertmacro MUI_LANGUAGE "Swedish"
104 !insertmacro MUI_LANGUAGE "Norwegian"
105 !insertmacro MUI_LANGUAGE "Finnish"
106 !insertmacro MUI_LANGUAGE "Greek"
107 !insertmacro MUI_LANGUAGE "Russian"
108 !insertmacro MUI_LANGUAGE "Portuguese"
109 !insertmacro MUI_LANGUAGE "PortugueseBR"
110 !insertmacro MUI_LANGUAGE "Arabic"
111 !insertmacro MUI_LANGUAGE "Polish"
112 !insertmacro MUI_LANGUAGE "Romanian"
113 !insertmacro MUI_LANGUAGE "Slovak"
114 !insertmacro MUI_LANGUAGE "Czech"
115 !insertmacro MUI_LANGUAGE "Hungarian"
116 !insertmacro MUI_LANGUAGE "Catalan"
117 !insertmacro MUI_LANGUAGE "Bulgarian"
119 ; Reserve files for solid compression
120 !insertmacro MUI_RESERVEFILE_LANGDLL
121 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
125 ;;;;;;;;;;;;;;;;;;;;;;;
126 ; Macro and Functions ;
127 ;;;;;;;;;;;;;;;;;;;;;;;
129 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
130 ; 1. File type associations ;
131 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
133 ;; Function that register one extension for VLC
134 Function RegisterExtension
135 ; back up old value for extension $R0 (eg. ".opt")
136 ReadRegStr $1 HKCR "$R0" ""
137 StrCmp $1 "" NoBackup
138 StrCmp $1 "VLC$R0" "NoBackup"
139 WriteRegStr HKCR "$R0" "VLC.backup" $1
141 WriteRegStr HKCR "$R0" "" "VLC$R0"
142 ReadRegStr $0 HKCR "VLC$R0" ""
143 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
144 WriteRegStr HKCR "VLC$R0\shell" "" "Open"
145 WriteRegStr HKCR "VLC$R0\shell\Open" "" $ShellAssociation_Play
146 WriteRegStr HKCR "VLC$R0\shell\Open\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
147 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
150 ; Vista and above detection
151 ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
153 StrCmp $R2 '6' ForVista ToEnd
155 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
160 ;; Function that removes one extension that VLC owns.
161 Function un.RegisterExtension
162 ;start of restore script
163 ReadRegStr $1 HKCR "$R0" ""
164 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
165 ; Read the old value from Backup
166 ReadRegStr $1 HKCR "$R0" "VLC.backup"
167 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
168 DeleteRegKey HKCR "$R0"
171 WriteRegStr HKCR "$R0" "" $1
172 DeleteRegValue HKCR "$R0" "VLC.backup"
174 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
175 DeleteRegKey HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations\VLC$R0" ; for vista
178 !macro RegisterExtensionSection EXT
183 Call RegisterExtension
188 !macro UnRegisterExtensionSection EXT
191 Call un.RegisterExtension
195 !macro WriteRegStrSupportedTypes EXT
196 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
199 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
200 ; Extension lists Macros ;
201 ; Those macros calls the previous functions ;
202 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
204 !macro MacroAudioExtensions _action
205 !insertmacro ${_action} ".a52"
206 !insertmacro ${_action} ".aac"
207 !insertmacro ${_action} ".ac3"
208 !insertmacro ${_action} ".aob"
209 !insertmacro ${_action} ".dts"
210 !insertmacro ${_action} ".flac"
211 !insertmacro ${_action} ".m4a"
212 !insertmacro ${_action} ".m4p"
213 !insertmacro ${_action} ".mka"
214 !insertmacro ${_action} ".mod"
215 !insertmacro ${_action} ".mp1"
216 !insertmacro ${_action} ".mp2"
217 !insertmacro ${_action} ".mp3"
218 !insertmacro ${_action} ".oma"
219 !insertmacro ${_action} ".oga"
220 !insertmacro ${_action} ".spx"
221 !insertmacro ${_action} ".wav"
222 !insertmacro ${_action} ".wma"
223 !insertmacro ${_action} ".wv"
224 !insertmacro ${_action} ".xm"
227 !macro MacroVideoExtensions _action
228 !insertmacro ${_action} ".asf"
229 !insertmacro ${_action} ".avi"
230 !insertmacro ${_action} ".divx"
231 !insertmacro ${_action} ".dv"
232 !insertmacro ${_action} ".flv"
233 !insertmacro ${_action} ".gxf"
234 !insertmacro ${_action} ".m1v"
235 !insertmacro ${_action} ".m2v"
236 !insertmacro ${_action} ".m2ts"
237 !insertmacro ${_action} ".m4v"
238 !insertmacro ${_action} ".mkv"
239 !insertmacro ${_action} ".mov"
240 !insertmacro ${_action} ".mp4"
241 !insertmacro ${_action} ".mpeg"
242 !insertmacro ${_action} ".mpeg1"
243 !insertmacro ${_action} ".mpeg2"
244 !insertmacro ${_action} ".mpeg4"
245 !insertmacro ${_action} ".mpg"
246 !insertmacro ${_action} ".mts"
247 !insertmacro ${_action} ".mxf"
248 !insertmacro ${_action} ".nuv"
249 !insertmacro ${_action} ".ogg"
250 !insertmacro ${_action} ".ogm"
251 !insertmacro ${_action} ".ogx"
252 !insertmacro ${_action} ".ogv"
253 !insertmacro ${_action} ".rmvb"
254 !insertmacro ${_action} ".ts"
255 !insertmacro ${_action} ".vob"
256 !insertmacro ${_action} ".wmv"
259 !macro MacroOtherExtensions _action
260 !insertmacro ${_action} ".asx"
261 !insertmacro ${_action} ".bin"
262 !insertmacro ${_action} ".cue"
263 !insertmacro ${_action} ".m3u"
264 !insertmacro ${_action} ".pls"
265 !insertmacro ${_action} ".vlc"
266 !insertmacro ${_action} ".xspf"
269 ; One macro to rule them all
270 !macro MacroAllExtensions _action
271 !insertmacro MacroAudioExtensions ${_action}
272 !insertmacro MacroVideoExtensions ${_action}
273 !insertmacro MacroOtherExtensions ${_action}
276 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
277 ; 2. Context menu entries ;
278 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
280 ; Generic function for adding the context menu for one ext.
281 !macro AddContextMenuExt EXT
282 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith
283 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"'
285 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist
286 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"'
289 !macro AddContextMenu EXT
291 ReadRegStr $R0 HKCR ${EXT} ""
292 !insertmacro AddContextMenuExt $R0
296 !macro DeleteContextMenuExt EXT
297 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
298 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
301 !macro DeleteContextMenu EXT
303 ReadRegStr $R0 HKCR ${EXT} ""
304 !insertmacro DeleteContextMenuExt $R0
308 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
309 ; 3. Delete prefs and cache ;
310 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
314 !define Index 'Line${__LINE__}'
317 ; this will loop through all the logged users and "virtual" windows users
318 ; (it looks like users are only present in HKEY_USERS when they are logged in)
320 EnumRegKey $1 HKU "" $0
321 StrCmp $1 "" "${Index}-End"
323 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
324 StrCmp $2 "" "${Index}-Loop"
335 !macro OpenUninstallLog
336 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
337 FileSeek $UninstallLog 0 END
340 !macro CloseUninstallLog
341 FileClose $UninstallLog
342 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
348 !macro InstallFile FILEREGEX
350 !define Index 'Line${__LINE__}'
351 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
352 StrCmp $0 "" "${Index}-End"
354 StrCmp $1 "" "${Index}-End"
355 FileWrite $UninstallLog "$1$\r$\n"
362 !macro InstallFolder FOLDER
365 Call InstallFolderInternal
368 Function InstallFolderInternal
370 !define Index 'Line${__LINE__}'
371 FindFirst $0 $1 "$INSTDIR\$9\*"
372 StrCmp $0 "" "${Index}-End"
374 StrCmp $1 "" "${Index}-End"
375 StrCmp $1 "." "${Index}-Next"
376 StrCmp $1 ".." "${Index}-Next"
377 IfFileExists "$9\$1\*" 0 "${Index}-Write"
381 Call InstallFolderInternal
386 FileWrite $UninstallLog "$9\$1$\r$\n"
396 ;;;;;;;;;;;;;;;;;;;;;;
397 ; Installer sections ;
400 ;;;;;;;;;;;;;;;;;;;;;;
402 Section $Name_Section01 SEC01
404 SetShellVarContext all
405 SetOutPath "$INSTDIR"
407 !insertmacro OpenUninstallLog
409 ; VLC.exe, libvlc.dll
410 !insertmacro InstallFile vlc.exe
411 !insertmacro InstallFile vlc.exe.manifest
414 !insertmacro InstallFile *.dll
417 !insertmacro InstallFile *.txt
420 !insertmacro InstallFolder plugins
421 !insertmacro InstallFolder locale
422 @BUILD_OSDMENU_TRUE@ !insertmacro InstallFolder osdmenu
423 @BUILD_SKINS_TRUE@ !insertmacro InstallFolder skins
424 @BUILD_HTTPD_TRUE@ !insertmacro InstallFolder http
425 @BUILD_LUA_TRUE@ !insertmacro InstallFolder lua
429 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
430 "${PRODUCT_WEB_SITE}"
431 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
432 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
433 "${PRODUCT_WEB_SITE}/doc/"
434 FileWrite $UninstallLog "Documentation.url$\r$\n"
435 WriteIniStr "$INSTDIR\New_Skins.url" "InternetShortcut" "URL" \
436 "${PRODUCT_WEB_SITE}/vlc/skins.php"
437 FileWrite $UninstallLog "New_Skins.url$\r$\n"
439 !insertmacro CloseUninstallLog
441 ; Add VLC to "recomended programs" for the following extensions
442 WriteRegStr HKCR Applications\vlc.exe "" ""
443 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
444 WriteRegStr HKCR Applications\vlc.exe\shell\Open "" $ContextMenuEntry_PlayWith
445 WriteRegStr HKCR Applications\vlc.exe\shell\Open\command "" \
446 '"$INSTDIR\vlc.exe" --started-from-file "%1"'
447 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
449 ; Windows default programs Registration
450 ; Vista and above detection
451 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
453 StrCmp $R1 '6' lbl_vista lbl_done
456 WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities"
457 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player"
458 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife"
463 Section $Name_Section02a SEC02a
465 CreateDirectory "$SMPROGRAMS\VideoLAN"
466 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
467 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
468 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
469 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc://quit"
470 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
471 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc://quit"
472 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
473 @BUILD_SKINS_TRUE@ CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
474 @BUILD_SKINS_TRUE@ "$INSTDIR\vlc.exe" "-I skins --save-config vlc://quit"
475 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Qt (default).lnk" \
476 "$INSTDIR\vlc.exe" "-I qt --save-config vlc://quit"
477 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
478 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
479 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
480 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc://quit"
481 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
482 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc://quit"
483 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
484 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc://quit"
485 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
486 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc://quit"
487 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
488 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc://quit"
489 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
490 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc://quit"
491 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
492 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache vlc://quit"
493 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
494 "$INSTDIR\Documentation.url"
495 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
496 "$INSTDIR\NEWS.txt" ""
497 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
498 "$INSTDIR\${PRODUCT_GROUP} Website.url"
499 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
500 "$INSTDIR\vlc.exe" ""
503 Section $Name_Section02b SEC02b
505 CreateShortCut "$DESKTOP\VLC media player.lnk" \
506 "$INSTDIR\vlc.exe" ""
509 !ifdef INSTALL_MOZILLA
510 Section /o $Name_Section03 SEC03
513 SetOutPath "$INSTDIR"
514 !insertmacro OpenUninstallLog
515 !insertmacro InstallFile mozilla\npvlc.dll
516 !insertmacro InstallFile mozilla\npvlc.dll.manifest
517 !insertmacro CloseUninstallLog
519 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
520 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
521 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
522 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
523 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
524 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
526 ; for very old version of mozilla, these lines may be needed
531 ;!define Index 'Line${__LINE__}'
537 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
538 ; StrCmp $R0 "" "${Index}-End"
540 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
541 ; StrCmp $R2 "" "${Index}-Loop" ""
543 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
545 ; CopyFiles ${LIBVLC_DLL} "$R2"
547 ; !ifdef LIBVLC_CONTROL_DLL
548 ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2"
550 ; Goto "${Index}-Loop"
558 !ifdef INSTALL_ACTIVEX
559 Section $Name_Section04 SEC04
561 SetOutPath "$INSTDIR"
562 !insertmacro OpenUninstallLog
563 !insertmacro InstallFile activex\axvlc.dll
564 !insertmacro InstallFile activex\axvlc.dll.manifest
565 !insertmacro CloseUninstallLog
566 RegDLL "$INSTDIR\axvlc.dll"
571 Section $Name_Section05 SEC05
573 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
574 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
575 '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
576 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
577 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
578 '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
580 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
581 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" $Action_OnArrivalDVD
582 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
583 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
584 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
585 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
587 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
588 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" $Action_OnArrivalAudioCD
589 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
590 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
591 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
592 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
593 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
594 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Open"
595 WriteRegStr HKCR "VLC.DVDMovie\shell\Open\command" "" \
596 '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
597 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
598 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
599 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Open"
600 WriteRegStr HKCR "VLC.CDAudio\shell\Open\command" "" \
601 '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
602 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
607 SectionGroup /e !$Name_Section06 SEC06
608 SectionGroup $Name_SectionGroupAudio
609 !insertmacro MacroAudioExtensions RegisterExtensionSection
611 SectionGroup $Name_SectionGroupVideo
612 !insertmacro MacroVideoExtensions RegisterExtensionSection
614 SectionGroup $Name_SectionGroupOther
615 !insertmacro MacroOtherExtensions RegisterExtensionSection
619 Section $Name_Section07 SEC07
621 !insertmacro MacroAllExtensions AddContextMenu
622 !insertmacro AddContextMenuExt "Directory"
625 Section $Name_Section08 SEC08
626 !insertmacro delprefs
629 ; Installer section descriptions
630 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
631 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $Desc_Section01
632 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} $Desc_Section02a
633 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} $Desc_Section02b
634 @BUILD_MOZILLA_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $Desc_Section03
635 @BUILD_ACTIVEX_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $Desc_Section04
636 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $Desc_Section05
637 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $Desc_Section06
638 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} $Desc_Section07
639 !insertmacro MUI_DESCRIPTION_TEXT ${SEC08} $Desc_Section08
640 !insertmacro MUI_FUNCTION_DESCRIPTION_END
644 !insertmacro MUI_LANGDLL_DISPLAY
646 !include "languages\english.nsh"
647 StrCmp $LANGUAGE ${LANG_FRENCH} French 0
648 StrCmp $LANGUAGE ${LANG_GERMAN} German 0
649 StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
650 StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
651 StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
652 StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
653 StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
654 StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
655 StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
656 StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
657 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
658 StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
659 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
661 !include "languages\french.nsh"
664 !include "languages\german.nsh"
667 !include "languages\italian.nsh"
670 !include "languages\hungarian.nsh"
673 !include "languages\romanian.nsh"
676 !include "languages\catalan.nsh"
679 !include "languages\bulgarian.nsh"
682 !include "languages\slovak.nsh"
685 !include "languages\polish.nsh"
688 !include "languages\dutch.nsh"
691 !include "languages\schinese.nsh"
694 !include "languages\finnish.nsh"
697 !include "languages\brazilian_portuguese.nsh"
700 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
704 MessageBox MB_YESNO|MB_ICONEXCLAMATION $Message_AlreadyInstalled IDNO done
709 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
716 WriteUninstaller "$INSTDIR\uninstall.exe"
717 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
718 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
719 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
721 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
722 "DisplayName" "$(^Name)"
723 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
724 "UninstallString" "$INSTDIR\uninstall.exe"
725 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
726 "InstallLocation" "$INSTDIR"
727 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
728 "DisplayIcon" "$INSTDIR\vlc.exe"
729 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
730 "DisplayVersion" "${PRODUCT_VERSION}"
731 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
732 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
733 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
734 "Publisher" "${PRODUCT_PUBLISHER}"
735 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
736 "VersionMajor" "@VERSION_MAJOR@"
737 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
738 "VersionMinor" "@VERSION_MINOR@"
741 ;;;;;;;;;;;;;;;;;;;;;;;;
742 ; Uninstaller sections ;
743 ;;;;;;;;;;;;;;;;;;;;;;;;
745 ; TrimNewlines (copied from NSIS documentation)
746 ; input, top of stack (e.g. whatever$\r$\n)
747 ; output, top of stack (replaces, with e.g. whatever)
748 ; modifies no other variables.
750 Function un.TrimNewlines
759 StrCmp $R2 "$\r" loop
760 StrCmp $R2 "$\n" loop
762 IntCmp $R1 0 no_trim_needed
771 Function un.RemoveEmptyDirs
773 !define Index 'Line${__LINE__}'
774 FindFirst $0 $1 "$INSTDIR$9*"
775 StrCmp $0 "" "${Index}-End"
777 StrCmp $1 "" "${Index}-End"
778 StrCmp $1 "." "${Index}-Next"
779 StrCmp $1 ".." "${Index}-Next"
784 Call un.RemoveEmptyDirs
798 Section "un.$Name_Section91" SEC91
800 SetShellVarContext all
802 !insertmacro MacroAllExtensions DeleteContextMenu
803 !insertmacro MacroAllExtensions UnRegisterExtensionSection
804 !insertmacro DeleteContextMenuExt "Directory"
806 ;remove activex plugin
807 UnRegDLL "$INSTDIR\axvlc.dll"
808 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
809 Delete /REBOOTOK "$INSTDIR\axvlc.dll.manifest"
811 ;remove mozilla plugin
816 !define Index 'Line${__LINE__}'
822 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
823 StrCmp $R0 "" "${Index}-End"
825 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
826 StrCmp $R2 "" "${Index}-Loop" ""
828 ; old files (0.8.5 and before) that may be lying around
829 Delete /REBOOTOK "$R2\npvlc.dll"
830 Delete /REBOOTOK "$R2\libvlc.dll"
831 Delete /REBOOTOK "$R2\vlcintf.xpt"
836 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
837 Delete /REBOOTOK "$INSTDIR\npvlc.dll.manifest"
839 RMDir "$SMPROGRAMS\VideoLAN"
840 RMDir /r $SMPROGRAMS\VideoLAN
842 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
845 FileRead $UninstallLog $R0
846 IfErrors UninstallEnd
850 Delete "$INSTDIR\$R0"
853 FileClose $UninstallLog
854 Delete "$INSTDIR\uninstall.log"
855 Delete "$INSTDIR\uninstall.exe"
857 Call un.RemoveEmptyDirs
860 DeleteRegKey HKLM Software\VideoLAN
862 DeleteRegKey HKCR Applications\vlc.exe
863 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
864 DeleteRegKey HKCR DVD\shell\PlayWithVLC
865 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
866 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
867 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
868 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
869 DeleteRegKey HKLM Software\Clients\Media\VLC
870 DeleteRegKey HKCR "VLC.MediaFile"
873 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
876 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
878 Delete "$DESKTOP\VLC media player.lnk"
880 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
881 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
885 Section /o "un.$Name_Section92" SEC92
886 !insertmacro delprefs
889 ; Uninstaller section descriptions
890 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
891 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} $Desc_Section91
892 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} $Desc_Section92
893 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
895 ;Function un.onUninstSuccess
897 ; MessageBox MB_ICONINFORMATION|MB_OK \
898 ; "$(^Name) was successfully removed from your computer."
902 !insertmacro MUI_UNGETLANGUAGE
904 !include "languages\english.nsh"
905 StrCmp $LANGUAGE ${LANG_FRENCH} French 0
906 StrCmp $LANGUAGE ${LANG_GERMAN} German 0
907 StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
908 StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
909 StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
910 StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
911 StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
912 StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
913 StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
914 StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
915 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
916 StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
917 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
919 !include "languages\french.nsh"
922 !include "languages\german.nsh"
925 !include "languages\italian.nsh"
928 !include "languages\hungarian.nsh"
931 !include "languages\romanian.nsh"
934 !include "languages\catalan.nsh"
937 !include "languages\bulgarian.nsh"
940 !include "languages\slovak.nsh"
943 !include "languages\polish.nsh"
946 !include "languages\dutch.nsh"
949 !include "languages\schinese.nsh"
952 !include "languages\finnish.nsh"
955 !include "languages\brazilian_portuguese.nsh"