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"
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 RequestExecutionLevel user
56 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57 ; NSIS Modern User Interface configuration ;
58 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
60 ; MUI 1.67 compatible ------
64 !define MUI_ABORTWARNING
65 !define MUI_ICON "vlc.ico"
66 !define MUI_UNICON "vlc.ico"
67 !define MUI_COMPONENTSPAGE_SMALLDESC
71 !define MUI_WELCOMEPAGE_TITLE_3LINES
72 !insertmacro MUI_PAGE_WELCOME
74 !define MUI_LICENSEPAGE_BUTTON $(^NextBtn)
75 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
77 !insertmacro MUI_PAGE_COMPONENTS
79 !insertmacro MUI_PAGE_DIRECTORY
81 !insertmacro MUI_PAGE_INSTFILES
85 Exec '$INSTDIR\vlc.exe'
89 !insertmacro UAC.CallFunctionAsUser ExecAppFile
92 !define MUI_FINISHPAGE_RUN
93 !define MUI_FINISHPAGE_RUN_FUNCTION AppRunAs
94 !define MUI_FINISHPAGE_LINK $Link_VisitWebsite
95 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
96 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
97 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
98 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
99 !insertmacro MUI_PAGE_FINISH
102 !insertmacro MUI_UNPAGE_CONFIRM
103 !insertmacro MUI_UNPAGE_COMPONENTS
104 !insertmacro MUI_UNPAGE_INSTFILES
105 !insertmacro MUI_UNPAGE_FINISH
108 !insertmacro MUI_LANGUAGE "English" # first language is the default language
109 !insertmacro MUI_LANGUAGE "French"
110 !insertmacro MUI_LANGUAGE "German"
111 !insertmacro MUI_LANGUAGE "Spanish"
112 !insertmacro MUI_LANGUAGE "SimpChinese"
113 !insertmacro MUI_LANGUAGE "TradChinese"
114 !insertmacro MUI_LANGUAGE "Japanese"
115 !insertmacro MUI_LANGUAGE "Korean"
116 !insertmacro MUI_LANGUAGE "Italian"
117 !insertmacro MUI_LANGUAGE "Dutch"
118 !insertmacro MUI_LANGUAGE "Danish"
119 !insertmacro MUI_LANGUAGE "Swedish"
120 !insertmacro MUI_LANGUAGE "Norwegian"
121 !insertmacro MUI_LANGUAGE "Finnish"
122 !insertmacro MUI_LANGUAGE "Greek"
123 !insertmacro MUI_LANGUAGE "Russian"
124 !insertmacro MUI_LANGUAGE "Portuguese"
125 !insertmacro MUI_LANGUAGE "PortugueseBR"
126 !insertmacro MUI_LANGUAGE "Arabic"
127 !insertmacro MUI_LANGUAGE "Polish"
128 !insertmacro MUI_LANGUAGE "Romanian"
129 !insertmacro MUI_LANGUAGE "Slovak"
130 !insertmacro MUI_LANGUAGE "Czech"
131 !insertmacro MUI_LANGUAGE "Hungarian"
132 !insertmacro MUI_LANGUAGE "Catalan"
133 !insertmacro MUI_LANGUAGE "Bulgarian"
135 ; Reserve files for solid compression
136 !insertmacro MUI_RESERVEFILE_LANGDLL
137 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
141 ;;;;;;;;;;;;;;;;;;;;;;;
142 ; Macro and Functions ;
143 ;;;;;;;;;;;;;;;;;;;;;;;
145 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
146 ; 1. File type associations ;
147 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
149 ;; Function that register one extension for VLC
150 Function RegisterExtension
151 ; back up old value for extension $R0 (eg. ".opt")
152 ReadRegStr $1 HKCR "$R0" ""
153 StrCmp $1 "" NoBackup
154 StrCmp $1 "VLC$R0" "NoBackup"
155 WriteRegStr HKCR "$R0" "VLC.backup" $1
157 WriteRegStr HKCR "$R0" "" "VLC$R0"
158 ReadRegStr $0 HKCR "VLC$R0" ""
159 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
160 WriteRegStr HKCR "VLC$R0\shell" "" "Open"
161 WriteRegStr HKCR "VLC$R0\shell\Open" "" $ShellAssociation_Play
162 WriteRegStr HKCR "VLC$R0\shell\Open\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
163 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
166 ; Vista and above detection
167 ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
169 StrCmp $R2 '6' ForVista ToEnd
171 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
176 ;; Function that removes one extension that VLC owns.
177 Function un.RegisterExtension
178 ;start of restore script
179 ReadRegStr $1 HKCR "$R0" ""
180 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
181 ; Read the old value from Backup
182 ReadRegStr $1 HKCR "$R0" "VLC.backup"
183 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
184 DeleteRegKey HKCR "$R0"
187 WriteRegStr HKCR "$R0" "" $1
188 DeleteRegValue HKCR "$R0" "VLC.backup"
190 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
191 DeleteRegKey HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations\VLC$R0" ; for vista
194 !macro RegisterExtensionSection EXT
199 Call RegisterExtension
204 !macro UnRegisterExtensionSection EXT
207 Call un.RegisterExtension
211 !macro WriteRegStrSupportedTypes EXT
212 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
215 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
216 ; Extension lists Macros ;
217 ; Those macros calls the previous functions ;
218 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
220 !macro MacroAudioExtensions _action
221 !insertmacro ${_action} ".a52"
222 !insertmacro ${_action} ".aac"
223 !insertmacro ${_action} ".ac3"
224 !insertmacro ${_action} ".aob"
225 !insertmacro ${_action} ".dts"
226 !insertmacro ${_action} ".flac"
227 !insertmacro ${_action} ".m4a"
228 !insertmacro ${_action} ".m4p"
229 !insertmacro ${_action} ".mka"
230 !insertmacro ${_action} ".mod"
231 !insertmacro ${_action} ".mp1"
232 !insertmacro ${_action} ".mp2"
233 !insertmacro ${_action} ".mp3"
234 !insertmacro ${_action} ".oma"
235 !insertmacro ${_action} ".oga"
236 !insertmacro ${_action} ".spx"
237 !insertmacro ${_action} ".tta"
238 !insertmacro ${_action} ".wav"
239 !insertmacro ${_action} ".wma"
240 !insertmacro ${_action} ".wv"
241 !insertmacro ${_action} ".xm"
244 !macro MacroVideoExtensions _action
245 !insertmacro ${_action} ".asf"
246 !insertmacro ${_action} ".avi"
247 !insertmacro ${_action} ".divx"
248 !insertmacro ${_action} ".dv"
249 !insertmacro ${_action} ".flv"
250 !insertmacro ${_action} ".gxf"
251 !insertmacro ${_action} ".m1v"
252 !insertmacro ${_action} ".m2v"
253 !insertmacro ${_action} ".m2ts"
254 !insertmacro ${_action} ".m4v"
255 !insertmacro ${_action} ".mkv"
256 !insertmacro ${_action} ".mov"
257 !insertmacro ${_action} ".mp4"
258 !insertmacro ${_action} ".mpeg"
259 !insertmacro ${_action} ".mpeg1"
260 !insertmacro ${_action} ".mpeg2"
261 !insertmacro ${_action} ".mpeg4"
262 !insertmacro ${_action} ".mpg"
263 !insertmacro ${_action} ".mts"
264 !insertmacro ${_action} ".mxf"
265 !insertmacro ${_action} ".nuv"
266 !insertmacro ${_action} ".ogg"
267 !insertmacro ${_action} ".ogm"
268 !insertmacro ${_action} ".ogx"
269 !insertmacro ${_action} ".ogv"
270 !insertmacro ${_action} ".rmvb"
271 !insertmacro ${_action} ".ts"
272 !insertmacro ${_action} ".vob"
273 !insertmacro ${_action} ".vro"
274 !insertmacro ${_action} ".webm"
275 !insertmacro ${_action} ".wmv"
278 !macro MacroOtherExtensions _action
279 !insertmacro ${_action} ".asx"
280 !insertmacro ${_action} ".bin"
281 !insertmacro ${_action} ".cue"
282 !insertmacro ${_action} ".ifo"
283 !insertmacro ${_action} ".m3u"
284 !insertmacro ${_action} ".pls"
285 !insertmacro ${_action} ".sdp"
286 !insertmacro ${_action} ".vlc"
287 !insertmacro ${_action} ".xspf"
290 ; One macro to rule them all
291 !macro MacroAllExtensions _action
292 !insertmacro MacroAudioExtensions ${_action}
293 !insertmacro MacroVideoExtensions ${_action}
294 !insertmacro MacroOtherExtensions ${_action}
297 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
298 ; 2. Context menu entries ;
299 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
301 ; Generic function for adding the context menu for one ext.
302 !macro AddContextMenuExt EXT
303 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith
304 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"'
306 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist
307 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"'
310 !macro AddContextMenu EXT
312 ReadRegStr $R0 HKCR ${EXT} ""
313 !insertmacro AddContextMenuExt $R0
317 !macro DeleteContextMenuExt EXT
318 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
319 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
322 !macro DeleteContextMenu EXT
324 ReadRegStr $R0 HKCR ${EXT} ""
325 !insertmacro DeleteContextMenuExt $R0
329 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
331 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
335 !define Index 'Line${__LINE__}'
338 ; this will loop through all the logged users and "virtual" windows users
339 ; (it looks like users are only present in HKEY_USERS when they are logged in)
341 EnumRegKey $1 HKU "" $0
342 StrCmp $1 "" "${Index}-End"
344 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
345 StrCmp $2 "" "${Index}-Loop"
356 !macro OpenUninstallLog
357 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
358 FileSeek $UninstallLog 0 END
361 !macro CloseUninstallLog
362 FileClose $UninstallLog
363 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
369 !macro InstallFile FILEREGEX
371 !define Index 'Line${__LINE__}'
372 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
373 StrCmp $0 "" "${Index}-End"
375 StrCmp $1 "" "${Index}-End"
376 FileWrite $UninstallLog "$1$\r$\n"
383 !macro InstallFolder FOLDER
386 Call InstallFolderInternal
389 Function InstallFolderInternal
391 !define Index 'Line${__LINE__}'
392 FindFirst $0 $1 "$INSTDIR\$9\*"
393 StrCmp $0 "" "${Index}-End"
395 StrCmp $1 "" "${Index}-End"
396 StrCmp $1 "." "${Index}-Next"
397 StrCmp $1 ".." "${Index}-Next"
398 IfFileExists "$9\$1\*" 0 "${Index}-Write"
402 Call InstallFolderInternal
407 FileWrite $UninstallLog "$9\$1$\r$\n"
417 ;;;;;;;;;;;;;;;;;;;;;;
418 ; Installer sections ;
421 ;;;;;;;;;;;;;;;;;;;;;;
423 Section $Name_Section01 SEC01
425 SetShellVarContext all
426 SetOutPath "$INSTDIR"
428 !insertmacro OpenUninstallLog
430 ; VLC.exe, libvlc.dll
431 !insertmacro InstallFile vlc.exe
432 !insertmacro InstallFile vlc.exe.manifest
433 !insertmacro InstallFile vlc-cache-gen.exe
436 !insertmacro InstallFile *.dll
439 !insertmacro InstallFile *.txt
442 !insertmacro InstallFolder plugins
443 !insertmacro InstallFolder locale
444 @BUILD_OSDMENU_TRUE@ !insertmacro InstallFolder osdmenu
445 @BUILD_SKINS_TRUE@ !insertmacro InstallFolder skins
446 @BUILD_HTTPD_TRUE@ !insertmacro InstallFolder http
447 @BUILD_LUA_TRUE@ !insertmacro InstallFolder lua
449 ; Generate the cache and add it to uninstall.log
450 ExecWait "$INSTDIR\vlc-cache-gen.exe $INSTDIR\plugins"
451 FindFirst $0 $1 "$INSTDIR\plugins\*.dat"
452 FileWrite $UninstallLog "plugins\$1$\r$\n"
458 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
459 "${PRODUCT_WEB_SITE}"
460 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
461 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
462 "${PRODUCT_WEB_SITE}/doc/"
463 FileWrite $UninstallLog "Documentation.url$\r$\n"
464 WriteIniStr "$INSTDIR\New_Skins.url" "InternetShortcut" "URL" \
465 "${PRODUCT_WEB_SITE}/vlc/skins.php"
466 FileWrite $UninstallLog "New_Skins.url$\r$\n"
468 !insertmacro CloseUninstallLog
470 ; Add VLC to "recommended programs" for the following extensions
471 WriteRegStr HKCR Applications\vlc.exe "" ""
472 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
473 WriteRegStr HKCR Applications\vlc.exe\shell\Open "" $ContextMenuEntry_PlayWith
474 WriteRegStr HKCR Applications\vlc.exe\shell\Open\command "" \
475 '"$INSTDIR\vlc.exe" --started-from-file "%1"'
476 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
478 ; Windows default programs Registration
479 ; Vista and above detection
480 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
482 StrCmp $R1 '6' lbl_vista lbl_done
485 WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities"
486 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player"
487 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife"
488 WriteRegStr HKLM "Software\Clients\Media\VLC" "" "VLC media player"
489 WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "HideIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /HideIcons /S"
490 WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ShowIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /ShowIcons /S"
491 WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ReinstallCommand" "$\"$INSTDIR\spad-setup.exe$\" /Reinstall /S"
492 WriteRegDWORD HKLM "Software\Clients\Media\VLC\InstallInfo" "IconsVisible" 0x001
497 Section $Name_Section02a SEC02a
499 CreateDirectory "$SMPROGRAMS\VideoLAN"
500 CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC media player preferences and cache files.lnk" \
501 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache vlc://quit"
502 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
503 "$INSTDIR\vlc.exe" ""
504 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player skinned.lnk" \
505 "$INSTDIR\vlc.exe" "-Iskins"
506 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
507 "$INSTDIR\Documentation.url"
508 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
509 "$INSTDIR\NEWS.txt" ""
510 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
511 "$INSTDIR\${PRODUCT_GROUP} Website.url"
514 Section $Name_Section02b SEC02b
516 CreateShortCut "$DESKTOP\VLC media player.lnk" \
517 "$INSTDIR\vlc.exe" ""
520 !ifdef INSTALL_MOZILLA
521 Section /o $Name_Section03 SEC03
524 SetOutPath "$INSTDIR"
525 !insertmacro OpenUninstallLog
526 !insertmacro InstallFile mozilla\npvlc.dll
527 !insertmacro InstallFile mozilla\npvlc.dll.manifest
528 !insertmacro CloseUninstallLog
530 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
531 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
532 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
533 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
534 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
535 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
539 !ifdef INSTALL_ACTIVEX
540 Section $Name_Section04 SEC04
543 SetOutPath "$INSTDIR"
544 !insertmacro OpenUninstallLog
545 !insertmacro InstallFile activex\axvlc.dll
546 !insertmacro InstallFile activex\axvlc.dll.manifest
547 !insertmacro CloseUninstallLog
548 RegDLL "$INSTDIR\axvlc.dll"
553 Section $Name_Section05 SEC05
555 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
556 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
557 '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
558 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
559 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
560 '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
562 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
563 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" $Action_OnArrivalDVD
564 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
565 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
566 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "Open"
567 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
569 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
570 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" $Action_OnArrivalAudioCD
571 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
572 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
573 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "Open"
574 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
575 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
576 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Open"
577 WriteRegStr HKCR "VLC.DVDMovie\shell\Open\command" "" \
578 '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
579 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
580 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
581 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Open"
582 WriteRegStr HKCR "VLC.CDAudio\shell\Open\command" "" \
583 '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
584 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
589 SectionGroup /e !$Name_Section06 SEC06
590 SectionGroup $Name_SectionGroupAudio
591 !insertmacro MacroAudioExtensions RegisterExtensionSection
593 SectionGroup $Name_SectionGroupVideo
594 !insertmacro MacroVideoExtensions RegisterExtensionSection
596 SectionGroup $Name_SectionGroupOther
597 !insertmacro MacroOtherExtensions RegisterExtensionSection
601 Section $Name_Section07 SEC07
603 !insertmacro MacroAllExtensions AddContextMenu
604 !insertmacro AddContextMenuExt "Directory"
607 Section $Name_Section08 SEC08
608 !insertmacro delprefs
611 ; Installer section descriptions
612 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
613 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $Desc_Section01
614 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} $Desc_Section02a
615 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} $Desc_Section02b
616 @BUILD_MOZILLA_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $Desc_Section03
617 @BUILD_ACTIVEX_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $Desc_Section04
618 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $Desc_Section05
619 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $Desc_Section06
620 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} $Desc_Section07
621 !insertmacro MUI_DESCRIPTION_TEXT ${SEC08} $Desc_Section08
622 !insertmacro MUI_FUNCTION_DESCRIPTION_END
629 StrCmp 1223 $0 UAC_ElevationAborted
630 StrCmp 0 $0 0 UAC_Err
631 StrCmp 1 $1 0 UAC_Success
635 MessageBox mb_iconstop "Unable to elevate, error $0"
638 UAC_ElevationAborted:
639 MessageBox mb_iconstop "This installer requires admin access, aborting!"
644 StrCmp 3 $1 0 UAC_ElevationAborted
645 MessageBox mb_iconstop "This installer requires admin access, try again"
647 !insertmacro MUI_LANGDLL_DISPLAY
649 !include "languages\english.nsh"
650 StrCmp $LANGUAGE ${LANG_FRENCH} French 0
651 StrCmp $LANGUAGE ${LANG_GERMAN} German 0
652 StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
653 StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
654 StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
655 StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
656 StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
657 StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
658 StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
659 StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
660 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
661 StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
662 StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0
663 ; StrCmp $LANGUAGE ${LANG_BENGALI} Bengali 0
664 ; StrCmp $LANGUAGE ${LANG_PUNJABI} Punjabi 0
665 ; StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0
666 StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0
667 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
669 !include "languages\french.nsh"
672 !include "languages\german.nsh"
675 !include "languages\italian.nsh"
678 !include "languages\hungarian.nsh"
681 !include "languages\romanian.nsh"
684 !include "languages\catalan.nsh"
687 !include "languages\bulgarian.nsh"
690 !include "languages\slovak.nsh"
693 !include "languages\polish.nsh"
696 !include "languages\dutch.nsh"
699 !include "languages\schinese.nsh"
702 !include "languages\finnish.nsh"
705 !include "languages\japanese.nsh"
708 !include "languages\bengali.nsh"
711 !include "languages\punjabi.nsh"
714 !include "languages\slovenian.nsh"
717 !include "languages\spanish.nsh"
720 !include "languages\brazilian_portuguese.nsh"
723 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
727 MessageBox MB_YESNO|MB_ICONEXCLAMATION $Message_AlreadyInstalled IDNO done
732 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
737 Function .OnInstFailed
741 Function .OnInstSuccess
747 WriteUninstaller "$INSTDIR\uninstall.exe"
748 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
749 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
750 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
752 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
753 "DisplayName" "$(^Name)"
754 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
755 "UninstallString" "$INSTDIR\uninstall.exe"
756 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
757 "InstallLocation" "$INSTDIR"
758 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
759 "DisplayIcon" "$INSTDIR\vlc.exe"
760 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
761 "DisplayVersion" "${PRODUCT_VERSION}"
762 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
763 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
764 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
765 "Publisher" "${PRODUCT_PUBLISHER}"
766 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
767 "VersionMajor" "@VERSION_MAJOR@"
768 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
769 "VersionMinor" "@VERSION_MINOR@"
772 ;;;;;;;;;;;;;;;;;;;;;;;;
773 ; Uninstaller sections ;
774 ;;;;;;;;;;;;;;;;;;;;;;;;
776 ; TrimNewlines (copied from NSIS documentation)
777 ; input, top of stack (e.g. whatever$\r$\n)
778 ; output, top of stack (replaces, with e.g. whatever)
779 ; modifies no other variables.
781 Function un.TrimNewlines
790 StrCmp $R2 "$\r" loop
791 StrCmp $R2 "$\n" loop
793 IntCmp $R1 0 no_trim_needed
802 Function un.RemoveEmptyDirs
804 !define Index 'Line${__LINE__}'
805 FindFirst $0 $1 "$INSTDIR$9*"
806 StrCmp $0 "" "${Index}-End"
808 StrCmp $1 "" "${Index}-End"
809 StrCmp $1 "." "${Index}-Next"
810 StrCmp $1 ".." "${Index}-Next"
815 Call un.RemoveEmptyDirs
829 Section "un.$Name_Section91" SEC91
831 SetShellVarContext all
833 !insertmacro MacroAllExtensions DeleteContextMenu
834 !insertmacro MacroAllExtensions UnRegisterExtensionSection
835 !insertmacro DeleteContextMenuExt "Directory"
837 ;remove activex plugin
838 UnRegDLL "$INSTDIR\axvlc.dll"
839 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
840 Delete /REBOOTOK "$INSTDIR\axvlc.dll.manifest"
842 ;remove mozilla plugin
847 !define Index 'Line${__LINE__}'
853 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
854 StrCmp $R0 "" "${Index}-End"
856 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
857 StrCmp $R2 "" "${Index}-Loop" ""
859 ; old files (0.8.5 and before) that may be lying around
860 Delete /REBOOTOK "$R2\npvlc.dll"
861 Delete /REBOOTOK "$R2\libvlc.dll"
862 Delete /REBOOTOK "$R2\vlcintf.xpt"
867 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
868 Delete /REBOOTOK "$INSTDIR\npvlc.dll.manifest"
870 RMDir "$SMPROGRAMS\VideoLAN"
871 RMDir /r $SMPROGRAMS\VideoLAN
873 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
876 FileRead $UninstallLog $R0
877 IfErrors UninstallEnd
881 Delete "$INSTDIR\$R0"
884 FileClose $UninstallLog
885 Delete "$INSTDIR\uninstall.log"
886 Delete "$INSTDIR\uninstall.exe"
888 Call un.RemoveEmptyDirs
891 DeleteRegKey HKLM Software\VideoLAN
893 DeleteRegKey HKCR Applications\vlc.exe
894 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
895 DeleteRegKey HKCR DVD\shell\PlayWithVLC
896 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
897 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
898 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
899 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
900 DeleteRegKey HKLM Software\Clients\Media\VLC
901 DeleteRegValue HKLM "Software\RegisteredApplications" "VLC"
902 DeleteRegKey HKCR "VLC.MediaFile"
905 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
908 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
910 Delete "$DESKTOP\VLC media player.lnk"
912 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
913 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
917 Section /o "un.$Name_Section92" SEC92
918 !insertmacro delprefs
921 ; Uninstaller section descriptions
922 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
923 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} $Desc_Section91
924 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} $Desc_Section92
925 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
927 Function un.OnUnInstFailed
931 Function un.OnUnInstSuccess
933 Delete "$INSTDIR\UAC.dll"
940 StrCmp 1223 $0 UAC_ElevationAborted
941 StrCmp 0 $0 0 UAC_Err
942 StrCmp 1 $1 0 UAC_Success
946 MessageBox mb_iconstop "Unable to elevate, error $0"
949 UAC_ElevationAborted:
950 MessageBox mb_iconstop "This installer requires admin access, aborting!"
955 StrCmp 3 $1 0 UAC_ElevationAborted
956 MessageBox mb_iconstop "This installer requires admin access, try again"
959 !insertmacro MUI_UNGETLANGUAGE
961 !include "languages\english.nsh"
962 StrCmp $LANGUAGE ${LANG_FRENCH} French 0
963 StrCmp $LANGUAGE ${LANG_GERMAN} German 0
964 StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
965 StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
966 StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
967 StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
968 StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
969 StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
970 StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
971 StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
972 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
973 StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
974 StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0
975 ; StrCmp $LANGUAGE ${LANG_BENGALI} Bengali 0
976 ; StrCmp $LANGUAGE ${LANG_PUNJABI} Punjabi 0
977 ; StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0
978 StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0
979 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
981 !include "languages\french.nsh"
984 !include "languages\german.nsh"
987 !include "languages\italian.nsh"
990 !include "languages\hungarian.nsh"
993 !include "languages\romanian.nsh"
996 !include "languages\catalan.nsh"
999 !include "languages\bulgarian.nsh"
1002 !include "languages\slovak.nsh"
1005 !include "languages\polish.nsh"
1008 !include "languages\dutch.nsh"
1011 !include "languages\schinese.nsh"
1014 !include "languages\finnish.nsh"
1017 !include "languages\japanese.nsh"
1020 !include "languages\bengali.nsh"
1023 !include "languages\punjabi.nsh"
1026 !include "languages\slovenian.nsh"
1029 !include "languages\spanish.nsh"
1032 !include "languages\brazilian_portuguese.nsh"