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} ".wmv"
277 !macro MacroOtherExtensions _action
278 !insertmacro ${_action} ".asx"
279 !insertmacro ${_action} ".bin"
280 !insertmacro ${_action} ".cue"
281 !insertmacro ${_action} ".ifo"
282 !insertmacro ${_action} ".m3u"
283 !insertmacro ${_action} ".pls"
284 !insertmacro ${_action} ".sdp"
285 !insertmacro ${_action} ".vlc"
286 !insertmacro ${_action} ".xspf"
289 ; One macro to rule them all
290 !macro MacroAllExtensions _action
291 !insertmacro MacroAudioExtensions ${_action}
292 !insertmacro MacroVideoExtensions ${_action}
293 !insertmacro MacroOtherExtensions ${_action}
296 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
297 ; 2. Context menu entries ;
298 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
300 ; Generic function for adding the context menu for one ext.
301 !macro AddContextMenuExt EXT
302 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith
303 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"'
305 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist
306 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"'
309 !macro AddContextMenu EXT
311 ReadRegStr $R0 HKCR ${EXT} ""
312 !insertmacro AddContextMenuExt $R0
316 !macro DeleteContextMenuExt EXT
317 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
318 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
321 !macro DeleteContextMenu EXT
323 ReadRegStr $R0 HKCR ${EXT} ""
324 !insertmacro DeleteContextMenuExt $R0
328 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
330 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
334 !define Index 'Line${__LINE__}'
337 ; this will loop through all the logged users and "virtual" windows users
338 ; (it looks like users are only present in HKEY_USERS when they are logged in)
340 EnumRegKey $1 HKU "" $0
341 StrCmp $1 "" "${Index}-End"
343 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
344 StrCmp $2 "" "${Index}-Loop"
355 !macro OpenUninstallLog
356 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
357 FileSeek $UninstallLog 0 END
360 !macro CloseUninstallLog
361 FileClose $UninstallLog
362 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
368 !macro InstallFile FILEREGEX
370 !define Index 'Line${__LINE__}'
371 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
372 StrCmp $0 "" "${Index}-End"
374 StrCmp $1 "" "${Index}-End"
375 FileWrite $UninstallLog "$1$\r$\n"
382 !macro InstallFolder FOLDER
385 Call InstallFolderInternal
388 Function InstallFolderInternal
390 !define Index 'Line${__LINE__}'
391 FindFirst $0 $1 "$INSTDIR\$9\*"
392 StrCmp $0 "" "${Index}-End"
394 StrCmp $1 "" "${Index}-End"
395 StrCmp $1 "." "${Index}-Next"
396 StrCmp $1 ".." "${Index}-Next"
397 IfFileExists "$9\$1\*" 0 "${Index}-Write"
401 Call InstallFolderInternal
406 FileWrite $UninstallLog "$9\$1$\r$\n"
416 ;;;;;;;;;;;;;;;;;;;;;;
417 ; Installer sections ;
420 ;;;;;;;;;;;;;;;;;;;;;;
422 Section $Name_Section01 SEC01
424 SetShellVarContext all
425 SetOutPath "$INSTDIR"
427 !insertmacro OpenUninstallLog
429 ; VLC.exe, libvlc.dll
430 !insertmacro InstallFile vlc.exe
431 !insertmacro InstallFile vlc.exe.manifest
432 !insertmacro InstallFile vlc-cache-gen.exe
435 !insertmacro InstallFile *.dll
438 !insertmacro InstallFile *.txt
441 !insertmacro InstallFolder plugins
442 !insertmacro InstallFolder locale
443 @BUILD_OSDMENU_TRUE@ !insertmacro InstallFolder osdmenu
444 @BUILD_SKINS_TRUE@ !insertmacro InstallFolder skins
445 @BUILD_HTTPD_TRUE@ !insertmacro InstallFolder http
446 @BUILD_LUA_TRUE@ !insertmacro InstallFolder lua
448 ; Generate the cache and add it to uninstall.log
449 ExecWait "$INSTDIR\vlc-cache-gen.exe $INSTDIR\plugins"
450 FindFirst $0 $1 "$INSTDIR\plugins\*.dat"
451 FileWrite $UninstallLog "plugins\$1$\r$\n"
457 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
458 "${PRODUCT_WEB_SITE}"
459 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
460 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
461 "${PRODUCT_WEB_SITE}/doc/"
462 FileWrite $UninstallLog "Documentation.url$\r$\n"
463 WriteIniStr "$INSTDIR\New_Skins.url" "InternetShortcut" "URL" \
464 "${PRODUCT_WEB_SITE}/vlc/skins.php"
465 FileWrite $UninstallLog "New_Skins.url$\r$\n"
467 !insertmacro CloseUninstallLog
469 ; Add VLC to "recommended programs" for the following extensions
470 WriteRegStr HKCR Applications\vlc.exe "" ""
471 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
472 WriteRegStr HKCR Applications\vlc.exe\shell\Open "" $ContextMenuEntry_PlayWith
473 WriteRegStr HKCR Applications\vlc.exe\shell\Open\command "" \
474 '"$INSTDIR\vlc.exe" --started-from-file "%1"'
475 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
477 ; Windows default programs Registration
478 ; Vista and above detection
479 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
481 StrCmp $R1 '6' lbl_vista lbl_done
484 WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities"
485 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player"
486 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife"
487 WriteRegStr HKLM "Software\Clients\Media\VLC" "" "VLC media player"
488 WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "HideIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /HideIcons /S"
489 WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ShowIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /ShowIcons /S"
490 WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ReinstallCommand" "$\"$INSTDIR\spad-setup.exe$\" /Reinstall /S"
491 WriteRegDWORD HKLM "Software\Clients\Media\VLC\InstallInfo" "IconsVisible" 0x001
496 Section $Name_Section02a SEC02a
498 CreateDirectory "$SMPROGRAMS\VideoLAN"
499 CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC media player preferences and cache files.lnk" \
500 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache vlc://quit"
501 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
502 "$INSTDIR\vlc.exe" ""
503 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player skinned.lnk" \
504 "$INSTDIR\vlc.exe" "-Iskins"
505 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
506 "$INSTDIR\Documentation.url"
507 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
508 "$INSTDIR\NEWS.txt" ""
509 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
510 "$INSTDIR\${PRODUCT_GROUP} Website.url"
513 Section $Name_Section02b SEC02b
515 CreateShortCut "$DESKTOP\VLC media player.lnk" \
516 "$INSTDIR\vlc.exe" ""
519 !ifdef INSTALL_MOZILLA
520 Section /o $Name_Section03 SEC03
523 SetOutPath "$INSTDIR"
524 !insertmacro OpenUninstallLog
525 !insertmacro InstallFile mozilla\npvlc.dll
526 !insertmacro InstallFile mozilla\npvlc.dll.manifest
527 !insertmacro CloseUninstallLog
529 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
530 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
531 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
532 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
533 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
534 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
538 !ifdef INSTALL_ACTIVEX
539 Section $Name_Section04 SEC04
542 SetOutPath "$INSTDIR"
543 !insertmacro OpenUninstallLog
544 !insertmacro InstallFile activex\axvlc.dll
545 !insertmacro InstallFile activex\axvlc.dll.manifest
546 !insertmacro CloseUninstallLog
547 RegDLL "$INSTDIR\axvlc.dll"
552 Section $Name_Section05 SEC05
554 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
555 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
556 '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
557 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
558 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
559 '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
561 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
562 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" $Action_OnArrivalDVD
563 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
564 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
565 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "Open"
566 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
568 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
569 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" $Action_OnArrivalAudioCD
570 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
571 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
572 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "Open"
573 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
574 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
575 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Open"
576 WriteRegStr HKCR "VLC.DVDMovie\shell\Open\command" "" \
577 '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
578 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
579 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
580 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Open"
581 WriteRegStr HKCR "VLC.CDAudio\shell\Open\command" "" \
582 '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
583 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
588 SectionGroup /e !$Name_Section06 SEC06
589 SectionGroup $Name_SectionGroupAudio
590 !insertmacro MacroAudioExtensions RegisterExtensionSection
592 SectionGroup $Name_SectionGroupVideo
593 !insertmacro MacroVideoExtensions RegisterExtensionSection
595 SectionGroup $Name_SectionGroupOther
596 !insertmacro MacroOtherExtensions RegisterExtensionSection
600 Section $Name_Section07 SEC07
602 !insertmacro MacroAllExtensions AddContextMenu
603 !insertmacro AddContextMenuExt "Directory"
606 Section $Name_Section08 SEC08
607 !insertmacro delprefs
610 ; Installer section descriptions
611 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
612 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $Desc_Section01
613 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} $Desc_Section02a
614 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} $Desc_Section02b
615 @BUILD_MOZILLA_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $Desc_Section03
616 @BUILD_ACTIVEX_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $Desc_Section04
617 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $Desc_Section05
618 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $Desc_Section06
619 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} $Desc_Section07
620 !insertmacro MUI_DESCRIPTION_TEXT ${SEC08} $Desc_Section08
621 !insertmacro MUI_FUNCTION_DESCRIPTION_END
628 StrCmp 1223 $0 UAC_ElevationAborted
629 StrCmp 0 $0 0 UAC_Err
630 StrCmp 1 $1 0 UAC_Success
634 MessageBox mb_iconstop "Unable to elevate, error $0"
637 UAC_ElevationAborted:
638 MessageBox mb_iconstop "This installer requires admin access, aborting!"
643 StrCmp 3 $1 0 UAC_ElevationAborted
644 MessageBox mb_iconstop "This installer requires admin access, try again"
646 !insertmacro MUI_LANGDLL_DISPLAY
648 !include "languages\english.nsh"
649 StrCmp $LANGUAGE ${LANG_FRENCH} French 0
650 StrCmp $LANGUAGE ${LANG_GERMAN} German 0
651 StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
652 StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
653 StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
654 StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
655 StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
656 StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
657 StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
658 StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
659 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
660 StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
661 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
663 !include "languages\french.nsh"
666 !include "languages\german.nsh"
669 !include "languages\italian.nsh"
672 !include "languages\hungarian.nsh"
675 !include "languages\romanian.nsh"
678 !include "languages\catalan.nsh"
681 !include "languages\bulgarian.nsh"
684 !include "languages\slovak.nsh"
687 !include "languages\polish.nsh"
690 !include "languages\dutch.nsh"
693 !include "languages\schinese.nsh"
696 !include "languages\finnish.nsh"
699 !include "languages\brazilian_portuguese.nsh"
702 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
706 MessageBox MB_YESNO|MB_ICONEXCLAMATION $Message_AlreadyInstalled IDNO done
711 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
716 Function .OnInstFailed
720 Function .OnInstSuccess
726 WriteUninstaller "$INSTDIR\uninstall.exe"
727 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
728 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
729 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
731 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
732 "DisplayName" "$(^Name)"
733 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
734 "UninstallString" "$INSTDIR\uninstall.exe"
735 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
736 "InstallLocation" "$INSTDIR"
737 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
738 "DisplayIcon" "$INSTDIR\vlc.exe"
739 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
740 "DisplayVersion" "${PRODUCT_VERSION}"
741 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
742 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
743 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
744 "Publisher" "${PRODUCT_PUBLISHER}"
745 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
746 "VersionMajor" "@VERSION_MAJOR@"
747 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
748 "VersionMinor" "@VERSION_MINOR@"
751 ;;;;;;;;;;;;;;;;;;;;;;;;
752 ; Uninstaller sections ;
753 ;;;;;;;;;;;;;;;;;;;;;;;;
755 ; TrimNewlines (copied from NSIS documentation)
756 ; input, top of stack (e.g. whatever$\r$\n)
757 ; output, top of stack (replaces, with e.g. whatever)
758 ; modifies no other variables.
760 Function un.TrimNewlines
769 StrCmp $R2 "$\r" loop
770 StrCmp $R2 "$\n" loop
772 IntCmp $R1 0 no_trim_needed
781 Function un.RemoveEmptyDirs
783 !define Index 'Line${__LINE__}'
784 FindFirst $0 $1 "$INSTDIR$9*"
785 StrCmp $0 "" "${Index}-End"
787 StrCmp $1 "" "${Index}-End"
788 StrCmp $1 "." "${Index}-Next"
789 StrCmp $1 ".." "${Index}-Next"
794 Call un.RemoveEmptyDirs
808 Section "un.$Name_Section91" SEC91
810 SetShellVarContext all
812 !insertmacro MacroAllExtensions DeleteContextMenu
813 !insertmacro MacroAllExtensions UnRegisterExtensionSection
814 !insertmacro DeleteContextMenuExt "Directory"
816 ;remove activex plugin
817 UnRegDLL "$INSTDIR\axvlc.dll"
818 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
819 Delete /REBOOTOK "$INSTDIR\axvlc.dll.manifest"
821 ;remove mozilla plugin
826 !define Index 'Line${__LINE__}'
832 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
833 StrCmp $R0 "" "${Index}-End"
835 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
836 StrCmp $R2 "" "${Index}-Loop" ""
838 ; old files (0.8.5 and before) that may be lying around
839 Delete /REBOOTOK "$R2\npvlc.dll"
840 Delete /REBOOTOK "$R2\libvlc.dll"
841 Delete /REBOOTOK "$R2\vlcintf.xpt"
846 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
847 Delete /REBOOTOK "$INSTDIR\npvlc.dll.manifest"
849 RMDir "$SMPROGRAMS\VideoLAN"
850 RMDir /r $SMPROGRAMS\VideoLAN
852 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
855 FileRead $UninstallLog $R0
856 IfErrors UninstallEnd
860 Delete "$INSTDIR\$R0"
863 FileClose $UninstallLog
864 Delete "$INSTDIR\uninstall.log"
865 Delete "$INSTDIR\uninstall.exe"
867 Call un.RemoveEmptyDirs
870 DeleteRegKey HKLM Software\VideoLAN
872 DeleteRegKey HKCR Applications\vlc.exe
873 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
874 DeleteRegKey HKCR DVD\shell\PlayWithVLC
875 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
876 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
877 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
878 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
879 DeleteRegKey HKLM Software\Clients\Media\VLC
880 DeleteRegValue HKLM "Software\RegisteredApplications" "VLC"
881 DeleteRegKey HKCR "VLC.MediaFile"
884 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
887 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
889 Delete "$DESKTOP\VLC media player.lnk"
891 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
892 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
896 Section /o "un.$Name_Section92" SEC92
897 !insertmacro delprefs
900 ; Uninstaller section descriptions
901 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
902 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} $Desc_Section91
903 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} $Desc_Section92
904 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
906 Function un.OnUnInstFailed
910 Function un.OnUnInstSuccess
912 Delete "$INSTDIR\UAC.dll"
919 StrCmp 1223 $0 UAC_ElevationAborted
920 StrCmp 0 $0 0 UAC_Err
921 StrCmp 1 $1 0 UAC_Success
925 MessageBox mb_iconstop "Unable to elevate, error $0"
928 UAC_ElevationAborted:
929 MessageBox mb_iconstop "This installer requires admin access, aborting!"
934 StrCmp 3 $1 0 UAC_ElevationAborted
935 MessageBox mb_iconstop "This installer requires admin access, try again"
938 !insertmacro MUI_UNGETLANGUAGE
940 !include "languages\english.nsh"
941 StrCmp $LANGUAGE ${LANG_FRENCH} French 0
942 StrCmp $LANGUAGE ${LANG_GERMAN} German 0
943 StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
944 StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
945 StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
946 StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
947 StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
948 StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
949 StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
950 StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
951 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
952 StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
953 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
955 !include "languages\french.nsh"
958 !include "languages\german.nsh"
961 !include "languages\italian.nsh"
964 !include "languages\hungarian.nsh"
967 !include "languages\romanian.nsh"
970 !include "languages\catalan.nsh"
973 !include "languages\bulgarian.nsh"
976 !include "languages\slovak.nsh"
979 !include "languages\polish.nsh"
982 !include "languages\dutch.nsh"
985 !include "languages\schinese.nsh"
988 !include "languages\finnish.nsh"
991 !include "languages\brazilian_portuguese.nsh"