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 ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
\r
193 StrCmp $R2 '6.0' ForVista ToEnd
\r
195 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
\r
200 Function un.RegisterExtension
\r
201 ;start of restore script
\r
202 ReadRegStr $1 HKCR "$R0" ""
\r
203 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
204 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
205 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
206 DeleteRegKey HKCR "$R0"
\r
209 WriteRegStr HKCR "$R0" "" $1
\r
210 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
212 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
215 !macro RegisterExtensionSection EXT
\r
220 Call RegisterExtension
\r
225 !macro UnRegisterExtensionSection EXT
\r
228 Call un.RegisterExtension
\r
232 !macro WriteRegStrSupportedTypes EXT
\r
233 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
236 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
237 ; Context menu entries ;
\r
238 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
240 !macro AddContextMenuExt EXT
\r
241 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
242 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
244 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
245 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
248 !macro AddContextMenu EXT
\r
250 ReadRegStr $R0 HKCR ${EXT} ""
\r
251 !insertmacro AddContextMenuExt $R0
\r
255 !macro DeleteContextMenuExt EXT
\r
256 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
257 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
260 !macro DeleteContextMenu EXT
\r
262 ReadRegStr $R0 HKCR ${EXT} ""
\r
263 !insertmacro DeleteContextMenuExt $R0
\r
267 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
268 ; Delete prefs and cache ;
\r
269 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
273 !define Index 'Line${__LINE__}'
\r
276 ; this will loop through all the logged users and "virtual" windows users
\r
277 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
279 EnumRegKey $1 HKU "" $0
\r
280 StrCmp $1 "" "${Index}-End"
\r
282 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
283 StrCmp $2 "" "${Index}-Loop"
\r
285 Goto "${Index}-Loop"
\r
292 !macro OpenUninstallLog
\r
293 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
294 FileSeek $UninstallLog 0 END
\r
297 !macro CloseUninstallLog
\r
298 FileClose $UninstallLog
\r
299 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
302 !macro InstallFile FILEREGEX
\r
303 File "${FILEREGEX}"
\r
304 !define Index 'Line${__LINE__}'
\r
305 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
306 StrCmp $0 "" "${Index}-End"
\r
308 StrCmp $1 "" "${Index}-End"
\r
309 FileWrite $UninstallLog "$1$\r$\n"
\r
311 Goto "${Index}-Loop"
\r
316 !macro InstallFolder FOLDER
\r
317 File /r "${FOLDER}"
\r
319 Call InstallFolderInternal
\r
322 Function InstallFolderInternal
\r
324 !define Index 'Line${__LINE__}'
\r
325 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
326 StrCmp $0 "" "${Index}-End"
\r
328 StrCmp $1 "" "${Index}-End"
\r
329 StrCmp $1 "." "${Index}-Next"
\r
330 StrCmp $1 ".." "${Index}-Next"
\r
331 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
335 Call InstallFolderInternal
\r
338 Goto "${Index}-Next"
\r
340 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
343 Goto "${Index}-Loop"
\r
349 ;;;;;;;;;;;;;;;;;;;;;;
\r
350 ; Installer sections ;
\r
351 ;;;;;;;;;;;;;;;;;;;;;;
\r
353 Section "Media player (required)" SEC01
\r
355 SetShellVarContext all
\r
356 SetOutPath "$INSTDIR"
\r
358 !insertmacro OpenUninstallLog
\r
360 !insertmacro InstallFile vlc.exe
\r
361 !insertmacro InstallFile vlc.exe.manifest
\r
363 !insertmacro InstallFile ${LIBVLC_DLL}
\r
365 !ifdef LIBVLC_CONTROL_DLL
\r
366 !insertmacro InstallFile ${LIBVLC_CONTROL_DLL}
\r
368 !insertmacro InstallFile *.txt
\r
370 !insertmacro InstallFolder plugins
\r
371 !insertmacro InstallFolder locale
\r
372 !insertmacro InstallFolder osdmenu
\r
373 !insertmacro InstallFolder skins
\r
374 !insertmacro InstallFolder http
\r
375 !insertmacro InstallFolder share
\r
377 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
378 "${PRODUCT_WEB_SITE}"
\r
379 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
380 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
381 "${PRODUCT_WEB_SITE}/doc/"
\r
382 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
384 !insertmacro CloseUninstallLog
\r
386 ; Add VLC to "recomended programs" for the following extensions
\r
387 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
388 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
389 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
390 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
391 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
392 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
394 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
395 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
396 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
397 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
398 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
399 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
401 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
402 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
403 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
404 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
405 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
406 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
408 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
409 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
410 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
411 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
412 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
413 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
414 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
415 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
416 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
417 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
418 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
419 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
420 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
421 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
422 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
423 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
426 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
\r
428 StrCmp $R1 '6.0' lbl_vista lbl_done
\r
431 WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities"
\r
432 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player"
\r
433 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife"
\r
439 Section "Start Menu Shortcut" SEC02a
\r
441 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
442 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
443 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
444 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
445 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
446 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
447 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
448 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
449 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
450 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
451 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
452 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
453 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
454 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
455 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
456 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
457 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
458 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
459 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
460 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
461 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
462 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
463 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
464 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
465 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
466 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
467 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
468 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
469 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
470 "$INSTDIR\Documentation.url"
\r
471 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
472 "$INSTDIR\NEWS.txt" ""
\r
473 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
474 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
475 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
476 "$INSTDIR\vlc.exe" ""
\r
479 Section "Desktop Shortcut" SEC02b
\r
481 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
482 "$INSTDIR\vlc.exe" ""
\r
485 Section /o "Mozilla plugin" SEC03
\r
488 SetOutPath "$INSTDIR"
\r
489 !insertmacro OpenUninstallLog
\r
490 !insertmacro InstallFile mozilla\npvlc.dll
\r
491 !insertmacro CloseUninstallLog
\r
493 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
494 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
495 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
496 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
497 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
498 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
500 ; for very old version of mozilla, these lines may be needed
\r
505 ;!define Index 'Line${__LINE__}'
\r
511 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
512 ; StrCmp $R0 "" "${Index}-End"
\r
513 ; IntOp $R1 $R1 + 1
\r
514 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
515 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
517 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
518 ; !ifdef LIBVLC_DLL
\r
519 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
521 ; !ifdef LIBVLC_CONTROL_DLL
\r
522 ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2"
\r
524 ; Goto "${Index}-Loop"
\r
531 Section "ActiveX plugin" SEC04
\r
533 SetOutPath "$INSTDIR"
\r
534 !insertmacro OpenUninstallLog
\r
535 !insertmacro InstallFile activex\axvlc.dll
\r
536 !insertmacro CloseUninstallLog
\r
537 RegDLL "$INSTDIR\axvlc.dll"
\r
540 SectionGroup "File type associations" SEC06
\r
541 SectionGroup "Audio Files"
\r
542 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
544 SectionGroup "Video Files"
\r
545 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
547 SectionGroup "Other"
\r
548 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
552 Section /o "Context Menus" SEC05
\r
554 !insertmacro MacroAllExtensions AddContextMenu
\r
555 !insertmacro AddContextMenuExt "Directory"
\r
558 Section /o "Delete preferences and cache" SEC07
\r
559 !insertmacro delprefs
\r
562 ; Installer section descriptions
\r
563 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
564 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
565 "The media player itself"
\r
566 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
567 "Adds icons to your start menu for easy access"
\r
568 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
569 "Adds icon to your desktop for easy access"
\r
570 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
571 "The VLC Mozilla and Mozilla Firefox plugin"
\r
572 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
573 "The VLC ActiveX plugin"
\r
574 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
575 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
576 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
577 "Sets VLC media player as the default application for the specified file type"
\r
578 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
579 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
580 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
583 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
587 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
588 "VLC media player has already been installed. $\nDo you want to remove \
\r
589 the previous version before installing $(^Name) ?" \
\r
592 ;Run the uninstaller
\r
595 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
597 !insertmacro MUI_LANGDLL_DISPLAY
\r
601 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
602 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
603 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
604 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
606 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
607 "DisplayName" "$(^Name)"
\r
608 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
609 "UninstallString" "$INSTDIR\uninstall.exe"
\r
610 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
611 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
612 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
613 "DisplayVersion" "${PRODUCT_VERSION}"
\r
614 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
615 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
616 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
617 "Publisher" "${PRODUCT_PUBLISHER}"
\r
620 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
621 ; Uninstaller sections ;
\r
622 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
624 ; TrimNewlines (copied from NSIS documentation)
\r
625 ; input, top of stack (e.g. whatever$\r$\n)
\r
626 ; output, top of stack (replaces, with e.g. whatever)
\r
627 ; modifies no other variables.
\r
629 Function un.TrimNewlines
\r
637 StrCpy $R2 $R0 1 $R1
\r
638 StrCmp $R2 "$\r" loop
\r
639 StrCmp $R2 "$\n" loop
\r
641 IntCmp $R1 0 no_trim_needed
\r
650 Function un.RemoveEmptyDirs
\r
652 !define Index 'Line${__LINE__}'
\r
653 FindFirst $0 $1 "$INSTDIR$9*"
\r
654 StrCmp $0 "" "${Index}-End"
\r
656 StrCmp $1 "" "${Index}-End"
\r
657 StrCmp $1 "." "${Index}-Next"
\r
658 StrCmp $1 ".." "${Index}-Next"
\r
663 Call un.RemoveEmptyDirs
\r
668 RMDir "$INSTDIR$9$1"
\r
671 Goto "${Index}-Loop"
\r
677 Section "Uninstall" SEC91
\r
679 SetShellVarContext all
\r
681 !insertmacro MacroAllExtensions DeleteContextMenu
\r
682 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
683 !insertmacro DeleteContextMenuExt "Directory"
\r
685 ;remove activex plugin
\r
686 UnRegDLL "$INSTDIR\axvlc.dll"
\r
687 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
689 ;remove mozilla plugin
\r
694 !define Index 'Line${__LINE__}'
\r
700 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
701 StrCmp $R0 "" "${Index}-End"
\r
703 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
704 StrCmp $R2 "" "${Index}-Loop" ""
\r
706 ; old files (0.8.5 and before) that may be lying around
\r
707 Delete /REBOOTOK "$R2\npvlc.dll"
\r
708 Delete /REBOOTOK "$R2\libvlc.dll"
\r
709 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
710 Goto "${Index}-Loop"
\r
714 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
716 RMDir "$SMPROGRAMS\VideoLAN"
\r
717 RMDir /r $SMPROGRAMS\VideoLAN
\r
719 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
722 FileRead $UninstallLog $R0
\r
723 IfErrors UninstallEnd
\r
725 Call un.TrimNewLines
\r
727 Delete "$INSTDIR\$R0"
\r
730 FileClose $UninstallLog
\r
731 Delete "$INSTDIR\uninstall.log"
\r
732 Delete "$INSTDIR\uninstall.exe"
\r
734 Call un.RemoveEmptyDirs
\r
737 DeleteRegKey HKLM Software\VideoLAN
\r
739 DeleteRegKey HKCR Applications\vlc.exe
\r
740 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
741 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
742 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
743 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
744 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
745 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
746 DeleteRegKey HKLM Software\Clients\Media\VLC
\r
747 DeleteRegKey HKCR "VLC.MediaFile"
\r
749 DeleteRegKey HKLM \
\r
750 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
752 DeleteRegKey HKLM \
\r
753 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
755 Delete "$DESKTOP\VLC media player.lnk"
\r
757 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
758 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
762 Section /o "un.Delete preferences and cache" SEC92
\r
763 !insertmacro delprefs
\r
766 ; Uninstaller section descriptions
\r
767 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
768 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
769 "Uninstall VLC media player and all its components"
\r
770 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
771 "Deletes VLC media player preferences and cache files"
\r
772 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
774 ;Function un.onUninstSuccess
\r
776 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
777 ; "$(^Name) was successfully removed from your computer."
\r
781 !insertmacro MUI_UNGETLANGUAGE
\r