1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
2 ; NSIS installer script for vlc ;
\r
3 ; (http://nsis.sourceforge.net) ;
\r
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
6 !define PRODUCT_NAME "VLC media player"
\r
7 !define PRODUCT_VERSION '${VERSION}'
\r
8 !define PRODUCT_GROUP "VideoLAN"
\r
9 !define PRODUCT_PUBLISHER "VideoLAN Team"
\r
10 !define PRODUCT_WEB_SITE "http://www.videolan.org"
\r
11 !define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC"
\r
12 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
13 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
\r
14 !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"
\r
16 !define MUI_LANGDLL_REGISTRY_ROOT "HKLM"
\r
17 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}"
\r
18 !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
\r
21 @FILE_LIBVLC_CONTROL_DLL@
\r
23 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
24 ; General configuration ;
\r
25 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
27 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
28 OutFile ..\vlc-${VERSION}-win32.exe
\r
29 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
30 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
31 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
34 SetCompressor /SOLID lzma
\r
36 ;ShowInstDetails show
\r
37 ;ShowUnInstDetails show
\r
38 SetOverwrite ifnewer
\r
41 InstType "Recommended"
\r
45 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
46 ; NSIS Modern User Interface configuration ;
\r
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
49 ; MUI 1.67 compatible ------
\r
53 !define MUI_ABORTWARNING
\r
54 !define MUI_ICON "vlc48x48.ico"
\r
55 !define MUI_UNICON "vlc48x48.ico"
\r
56 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
60 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
61 !insertmacro MUI_PAGE_WELCOME
\r
63 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
65 !insertmacro MUI_PAGE_COMPONENTS
\r
67 !insertmacro MUI_PAGE_DIRECTORY
\r
69 !insertmacro MUI_PAGE_INSTFILES
\r
71 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
72 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
73 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
74 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
75 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
76 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
77 !insertmacro MUI_PAGE_FINISH
\r
80 !insertmacro MUI_UNPAGE_CONFIRM
\r
81 !insertmacro MUI_UNPAGE_COMPONENTS
\r
82 !insertmacro MUI_UNPAGE_INSTFILES
\r
83 !insertmacro MUI_UNPAGE_FINISH
\r
86 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
87 !insertmacro MUI_LANGUAGE "French"
\r
88 !insertmacro MUI_LANGUAGE "German"
\r
89 !insertmacro MUI_LANGUAGE "Spanish"
\r
90 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
91 !insertmacro MUI_LANGUAGE "TradChinese"
\r
92 !insertmacro MUI_LANGUAGE "Japanese"
\r
93 !insertmacro MUI_LANGUAGE "Korean"
\r
94 !insertmacro MUI_LANGUAGE "Italian"
\r
95 !insertmacro MUI_LANGUAGE "Dutch"
\r
96 !insertmacro MUI_LANGUAGE "Danish"
\r
97 !insertmacro MUI_LANGUAGE "Swedish"
\r
98 !insertmacro MUI_LANGUAGE "Norwegian"
\r
99 !insertmacro MUI_LANGUAGE "Finnish"
\r
100 !insertmacro MUI_LANGUAGE "Greek"
\r
101 !insertmacro MUI_LANGUAGE "Russian"
\r
102 !insertmacro MUI_LANGUAGE "Portuguese"
\r
103 !insertmacro MUI_LANGUAGE "Arabic"
\r
104 !insertmacro MUI_LANGUAGE "Polish"
\r
105 !insertmacro MUI_LANGUAGE "Romanian"
\r
107 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
110 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
114 ;;;;;;;;;;;;;;;;;;;
\r
115 ; Extension lists ;
\r
116 ;;;;;;;;;;;;;;;;;;;
\r
118 !macro MacroAudioExtensions _action
\r
119 !insertmacro ${_action} ".a52"
\r
120 !insertmacro ${_action} ".aac"
\r
121 !insertmacro ${_action} ".ac3"
\r
122 !insertmacro ${_action} ".dts"
\r
123 !insertmacro ${_action} ".flac"
\r
124 !insertmacro ${_action} ".mka"
\r
125 !insertmacro ${_action} ".mp1"
\r
126 !insertmacro ${_action} ".mp2"
\r
127 !insertmacro ${_action} ".mp3"
\r
128 !insertmacro ${_action} ".ogg"
\r
129 !insertmacro ${_action} ".spx"
\r
130 !insertmacro ${_action} ".wav"
\r
131 !insertmacro ${_action} ".wma"
\r
134 !macro MacroVideoExtensions _action
\r
135 !insertmacro ${_action} ".asf"
\r
136 !insertmacro ${_action} ".avi"
\r
137 !insertmacro ${_action} ".divx"
\r
138 !insertmacro ${_action} ".dv"
\r
139 !insertmacro ${_action} ".m1v"
\r
140 !insertmacro ${_action} ".m2v"
\r
141 !insertmacro ${_action} ".mkv"
\r
142 !insertmacro ${_action} ".mov"
\r
143 !insertmacro ${_action} ".mp4"
\r
144 !insertmacro ${_action} ".mpeg"
\r
145 !insertmacro ${_action} ".mpeg1"
\r
146 !insertmacro ${_action} ".mpeg2"
\r
147 !insertmacro ${_action} ".mpeg4"
\r
148 !insertmacro ${_action} ".mpg"
\r
149 !insertmacro ${_action} ".mxf"
\r
150 !insertmacro ${_action} ".ps"
\r
151 !insertmacro ${_action} ".ts"
\r
152 !insertmacro ${_action} ".ogm"
\r
153 !insertmacro ${_action} ".vob"
\r
154 !insertmacro ${_action} ".wmv"
\r
157 !macro MacroOtherExtensions _action
\r
158 !insertmacro ${_action} ".asx"
\r
159 !insertmacro ${_action} ".bin"
\r
160 !insertmacro ${_action} ".cue"
\r
161 !insertmacro ${_action} ".m3u"
\r
162 !insertmacro ${_action} ".pls"
\r
163 !insertmacro ${_action} ".vlc"
\r
166 !macro MacroAllExtensions _action
\r
167 !insertmacro MacroAudioExtensions ${_action}
\r
168 !insertmacro MacroVideoExtensions ${_action}
\r
169 !insertmacro MacroOtherExtensions ${_action}
\r
172 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
173 ; File type associations ;
\r
174 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
176 Function RegisterExtension
\r
177 ; back up old value for extension $R0 (eg. ".opt")
\r
178 ReadRegStr $1 HKCR "$R0" ""
\r
179 StrCmp $1 "" NoBackup
\r
180 StrCmp $1 "VLC$R0" "NoBackup"
\r
181 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
183 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
184 ReadRegStr $0 HKCR "VLC$R0" ""
\r
185 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
186 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
187 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
188 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
191 Function un.RegisterExtension
\r
192 ;start of restore script
\r
193 ReadRegStr $1 HKCR "$R0" ""
\r
194 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
195 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
196 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
197 DeleteRegKey HKCR "$R0"
\r
200 WriteRegStr HKCR "$R0" "" $1
\r
201 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
203 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
206 !macro RegisterExtensionSection EXT
\r
211 Call RegisterExtension
\r
216 !macro UnRegisterExtensionSection EXT
\r
219 Call un.RegisterExtension
\r
223 !macro WriteRegStrSupportedTypes EXT
\r
224 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
227 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
228 ; Context menu entries ;
\r
229 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
231 !macro AddContextMenuExt EXT
\r
232 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
233 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
235 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
236 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
239 !macro AddContextMenu EXT
\r
241 ReadRegStr $R0 HKCR ${EXT} ""
\r
242 !insertmacro AddContextMenuExt $R0
\r
246 !macro DeleteContextMenuExt EXT
\r
247 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
248 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
251 !macro DeleteContextMenu EXT
\r
253 ReadRegStr $R0 HKCR ${EXT} ""
\r
254 !insertmacro DeleteContextMenuExt $R0
\r
258 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
259 ; Delete prefs and cache ;
\r
260 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
264 !define Index 'Line${__LINE__}'
\r
267 ; this will loop through all the logged users and "virtual" windows users
\r
268 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
270 EnumRegKey $1 HKU "" $0
\r
271 StrCmp $1 "" "${Index}-End"
\r
273 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
274 StrCmp $2 "" "${Index}-Loop"
\r
276 Goto "${Index}-Loop"
\r
283 !macro OpenUninstallLog
\r
284 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
285 FileSeek $UninstallLog 0 END
\r
288 !macro CloseUninstallLog
\r
289 FileClose $UninstallLog
\r
290 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
293 !macro InstallFile FILEREGEX
\r
294 File "${FILEREGEX}"
\r
295 !define Index 'Line${__LINE__}'
\r
296 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
297 StrCmp $0 "" "${Index}-End"
\r
299 StrCmp $1 "" "${Index}-End"
\r
300 FileWrite $UninstallLog "$1$\r$\n"
\r
302 Goto "${Index}-Loop"
\r
307 !macro InstallFolder FOLDER
\r
308 File /r "${FOLDER}"
\r
310 Call InstallFolderInternal
\r
313 Function InstallFolderInternal
\r
315 !define Index 'Line${__LINE__}'
\r
316 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
317 StrCmp $0 "" "${Index}-End"
\r
319 StrCmp $1 "" "${Index}-End"
\r
320 StrCmp $1 "." "${Index}-Next"
\r
321 StrCmp $1 ".." "${Index}-Next"
\r
322 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
326 Call InstallFolderInternal
\r
329 Goto "${Index}-Next"
\r
331 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
334 Goto "${Index}-Loop"
\r
340 ;;;;;;;;;;;;;;;;;;;;;;
\r
341 ; Installer sections ;
\r
342 ;;;;;;;;;;;;;;;;;;;;;;
\r
344 Section "Media player (required)" SEC01
\r
346 SetShellVarContext all
\r
347 SetOutPath "$INSTDIR"
\r
349 !insertmacro OpenUninstallLog
\r
351 !insertmacro InstallFile vlc.exe
\r
352 !insertmacro InstallFile vlc.exe.manifest
\r
354 !insertmacro InstallFile ${LIBVLC_DLL}
\r
356 !ifdef LIBVLC_CONTROL_DLL
\r
357 !insertmacro InstallFile ${LIBVLC_CONTROL_DLL}
\r
359 !insertmacro InstallFile *.txt
\r
361 !insertmacro InstallFolder plugins
\r
362 !insertmacro InstallFolder locale
\r
363 !insertmacro InstallFolder osdmenu
\r
364 !insertmacro InstallFolder skins
\r
365 !insertmacro InstallFolder http
\r
366 !insertmacro InstallFolder share
\r
368 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
369 "${PRODUCT_WEB_SITE}"
\r
370 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
371 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
372 "${PRODUCT_WEB_SITE}/doc/"
\r
373 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
375 !insertmacro CloseUninstallLog
\r
377 ; Add VLC to "recomended programs" for the following extensions
\r
378 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
379 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
380 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
381 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
382 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
383 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
385 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
386 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
387 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
388 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
389 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
390 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
392 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
393 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
394 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
395 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
396 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
397 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
399 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
400 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
401 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
402 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
403 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
404 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
405 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
406 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
407 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
408 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
409 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
410 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
411 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
412 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
413 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
414 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
418 Section "Start Menu Shortcut" SEC02a
\r
420 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
421 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
422 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
423 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
424 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
425 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
426 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
427 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
428 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
429 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
430 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
431 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
432 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
433 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
434 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
435 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
436 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
437 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
438 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
439 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
440 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
441 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
442 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
443 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
444 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
445 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
446 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
447 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
448 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
449 "$INSTDIR\Documentation.url"
\r
450 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
451 "$INSTDIR\NEWS.txt" ""
\r
452 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
453 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
454 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
455 "$INSTDIR\vlc.exe" ""
\r
458 Section "Desktop Shortcut" SEC02b
\r
460 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
461 "$INSTDIR\vlc.exe" ""
\r
464 Section /o "Mozilla plugin" SEC03
\r
467 SetOutPath "$INSTDIR"
\r
468 !insertmacro OpenUninstallLog
\r
469 !insertmacro InstallFile mozilla\npvlc.dll
\r
470 !insertmacro CloseUninstallLog
\r
472 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
473 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
474 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
475 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
476 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
477 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
479 ; for very old version of mozilla, these lines may be needed
\r
484 ;!define Index 'Line${__LINE__}'
\r
490 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
491 ; StrCmp $R0 "" "${Index}-End"
\r
492 ; IntOp $R1 $R1 + 1
\r
493 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
494 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
496 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
497 ; !ifdef LIBVLC_DLL
\r
498 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
500 ; !ifdef LIBVLC_CONTROL_DLL
\r
501 ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2"
\r
503 ; Goto "${Index}-Loop"
\r
510 Section "ActiveX plugin" SEC04
\r
512 SetOutPath "$INSTDIR"
\r
513 !insertmacro OpenUninstallLog
\r
514 !insertmacro InstallFile activex\axvlc.dll
\r
515 !insertmacro CloseUninstallLog
\r
516 RegDLL "$INSTDIR\axvlc.dll"
\r
519 SectionGroup "File type associations" SEC06
\r
520 SectionGroup "Audio Files"
\r
521 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
523 SectionGroup "Video Files"
\r
524 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
526 SectionGroup "Other"
\r
527 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
531 Section /o "Context Menus" SEC05
\r
533 !insertmacro MacroAllExtensions AddContextMenu
\r
534 !insertmacro AddContextMenuExt "Directory"
\r
537 Section /o "Delete preferences and cache" SEC07
\r
538 !insertmacro delprefs
\r
541 ; Installer section descriptions
\r
542 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
543 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
544 "The media player itself"
\r
545 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
546 "Adds icons to your start menu for easy access"
\r
547 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
548 "Adds icon to your desktop for easy access"
\r
549 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
550 "The VLC Mozilla and Mozilla Firefox plugin"
\r
551 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
552 "The VLC ActiveX plugin"
\r
553 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
554 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
555 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
556 "Sets VLC media player as the default application for the specified file type"
\r
557 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
558 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
559 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
562 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
566 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
567 "VLC media player has already been installed. $\nDo you want to remove \
\r
568 the previous version before installing $(^Name) ?" \
\r
571 ;Run the uninstaller
\r
574 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
576 !insertmacro MUI_LANGDLL_DISPLAY
\r
580 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
581 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
582 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
583 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
585 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
586 "DisplayName" "$(^Name)"
\r
587 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
588 "UninstallString" "$INSTDIR\uninstall.exe"
\r
589 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
590 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
591 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
592 "DisplayVersion" "${PRODUCT_VERSION}"
\r
593 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
594 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
595 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
596 "Publisher" "${PRODUCT_PUBLISHER}"
\r
599 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
600 ; Uninstaller sections ;
\r
601 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
603 ; TrimNewlines (copied from NSIS documentation)
\r
604 ; input, top of stack (e.g. whatever$\r$\n)
\r
605 ; output, top of stack (replaces, with e.g. whatever)
\r
606 ; modifies no other variables.
\r
608 Function un.TrimNewlines
\r
616 StrCpy $R2 $R0 1 $R1
\r
617 StrCmp $R2 "$\r" loop
\r
618 StrCmp $R2 "$\n" loop
\r
620 IntCmp $R1 0 no_trim_needed
\r
629 Function un.RemoveEmptyDirs
\r
631 !define Index 'Line${__LINE__}'
\r
632 FindFirst $0 $1 "$INSTDIR$9*"
\r
633 StrCmp $0 "" "${Index}-End"
\r
635 StrCmp $1 "" "${Index}-End"
\r
636 StrCmp $1 "." "${Index}-Next"
\r
637 StrCmp $1 ".." "${Index}-Next"
\r
642 Call un.RemoveEmptyDirs
\r
647 RMDir "$INSTDIR$9$1"
\r
650 Goto "${Index}-Loop"
\r
656 Section "Uninstall" SEC91
\r
658 SetShellVarContext all
\r
660 !insertmacro MacroAllExtensions DeleteContextMenu
\r
661 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
662 !insertmacro DeleteContextMenuExt "Directory"
\r
664 ;remove activex plugin
\r
665 UnRegDLL "$INSTDIR\axvlc.dll"
\r
666 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
668 ;remove mozilla plugin
\r
673 !define Index 'Line${__LINE__}'
\r
679 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
680 StrCmp $R0 "" "${Index}-End"
\r
682 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
683 StrCmp $R2 "" "${Index}-Loop" ""
\r
685 ; old files (0.8.5 and before) that may be lying around
\r
686 Delete /REBOOTOK "$R2\npvlc.dll"
\r
687 Delete /REBOOTOK "$R2\libvlc.dll"
\r
688 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
689 Goto "${Index}-Loop"
\r
693 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
695 RMDir "$SMPROGRAMS\VideoLAN"
\r
696 RMDir /r $SMPROGRAMS\VideoLAN
\r
698 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
701 FileRead $UninstallLog $R0
\r
702 IfErrors UninstallEnd
\r
704 Call un.TrimNewLines
\r
706 Delete "$INSTDIR\$R0"
\r
709 FileClose $UninstallLog
\r
710 Delete "$INSTDIR\uninstall.log"
\r
711 Delete "$INSTDIR\uninstall.exe"
\r
713 Call un.RemoveEmptyDirs
\r
716 DeleteRegKey HKLM Software\VideoLAN
\r
718 DeleteRegKey HKCR Applications\vlc.exe
\r
719 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
720 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
721 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
722 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
723 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
724 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
725 DeleteRegKey HKCR "VLC.MediaFile"
\r
727 DeleteRegKey HKLM \
\r
728 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
730 DeleteRegKey HKLM \
\r
731 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
733 Delete "$DESKTOP\VLC media player.lnk"
\r
735 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
736 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
740 Section /o "un.Delete preferences and cache" SEC92
\r
741 !insertmacro delprefs
\r
744 ; Uninstaller section descriptions
\r
745 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
746 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
747 "Uninstall VLC media player and all its components"
\r
748 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
749 "Deletes VLC media player preferences and cache files"
\r
750 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
752 ;Function un.onUninstSuccess
\r
754 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
755 ; "$(^Name) was successfully removed from your computer."
\r
759 !insertmacro MUI_UNGETLANGUAGE
\r