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
106 !insertmacro MUI_LANGUAGE "Slovak"
\r
107 !insertmacro MUI_LANGUAGE "Czech"
\r
109 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
112 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
116 ;;;;;;;;;;;;;;;;;;;
\r
117 ; Extension lists ;
\r
118 ;;;;;;;;;;;;;;;;;;;
\r
120 !macro MacroAudioExtensions _action
\r
121 !insertmacro ${_action} ".a52"
\r
122 !insertmacro ${_action} ".aac"
\r
123 !insertmacro ${_action} ".ac3"
\r
124 !insertmacro ${_action} ".dts"
\r
125 !insertmacro ${_action} ".flac"
\r
126 !insertmacro ${_action} ".mka"
\r
127 !insertmacro ${_action} ".mp1"
\r
128 !insertmacro ${_action} ".mp2"
\r
129 !insertmacro ${_action} ".mp3"
\r
130 !insertmacro ${_action} ".ogg"
\r
131 !insertmacro ${_action} ".spx"
\r
132 !insertmacro ${_action} ".wav"
\r
133 !insertmacro ${_action} ".wma"
\r
136 !macro MacroVideoExtensions _action
\r
137 !insertmacro ${_action} ".asf"
\r
138 !insertmacro ${_action} ".avi"
\r
139 !insertmacro ${_action} ".divx"
\r
140 !insertmacro ${_action} ".dv"
\r
141 !insertmacro ${_action} ".m1v"
\r
142 !insertmacro ${_action} ".m2v"
\r
143 !insertmacro ${_action} ".mkv"
\r
144 !insertmacro ${_action} ".mov"
\r
145 !insertmacro ${_action} ".mp4"
\r
146 !insertmacro ${_action} ".mpeg"
\r
147 !insertmacro ${_action} ".mpeg1"
\r
148 !insertmacro ${_action} ".mpeg2"
\r
149 !insertmacro ${_action} ".mpeg4"
\r
150 !insertmacro ${_action} ".mpg"
\r
151 !insertmacro ${_action} ".mxf"
\r
152 !insertmacro ${_action} ".ps"
\r
153 !insertmacro ${_action} ".ts"
\r
154 !insertmacro ${_action} ".ogm"
\r
155 !insertmacro ${_action} ".vob"
\r
156 !insertmacro ${_action} ".wmv"
\r
159 !macro MacroOtherExtensions _action
\r
160 !insertmacro ${_action} ".asx"
\r
161 !insertmacro ${_action} ".bin"
\r
162 !insertmacro ${_action} ".cue"
\r
163 !insertmacro ${_action} ".m3u"
\r
164 !insertmacro ${_action} ".pls"
\r
165 !insertmacro ${_action} ".vlc"
\r
168 !macro MacroAllExtensions _action
\r
169 !insertmacro MacroAudioExtensions ${_action}
\r
170 !insertmacro MacroVideoExtensions ${_action}
\r
171 !insertmacro MacroOtherExtensions ${_action}
\r
174 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
175 ; File type associations ;
\r
176 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
178 Function RegisterExtension
\r
179 ; back up old value for extension $R0 (eg. ".opt")
\r
180 ReadRegStr $1 HKCR "$R0" ""
\r
181 StrCmp $1 "" NoBackup
\r
182 StrCmp $1 "VLC$R0" "NoBackup"
\r
183 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
185 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
186 ReadRegStr $0 HKCR "VLC$R0" ""
\r
187 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
188 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
189 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
190 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
193 ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
\r
195 StrCmp $R2 '6.0' ForVista ToEnd
\r
197 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
\r
202 Function un.RegisterExtension
\r
203 ;start of restore script
\r
204 ReadRegStr $1 HKCR "$R0" ""
\r
205 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
206 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
207 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
208 DeleteRegKey HKCR "$R0"
\r
211 WriteRegStr HKCR "$R0" "" $1
\r
212 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
214 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
217 !macro RegisterExtensionSection EXT
\r
222 Call RegisterExtension
\r
227 !macro UnRegisterExtensionSection EXT
\r
230 Call un.RegisterExtension
\r
234 !macro WriteRegStrSupportedTypes EXT
\r
235 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
238 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
239 ; Context menu entries ;
\r
240 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
242 !macro AddContextMenuExt EXT
\r
243 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
244 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
246 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
247 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
250 !macro AddContextMenu EXT
\r
252 ReadRegStr $R0 HKCR ${EXT} ""
\r
253 !insertmacro AddContextMenuExt $R0
\r
257 !macro DeleteContextMenuExt EXT
\r
258 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
259 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
262 !macro DeleteContextMenu EXT
\r
264 ReadRegStr $R0 HKCR ${EXT} ""
\r
265 !insertmacro DeleteContextMenuExt $R0
\r
269 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
270 ; Delete prefs and cache ;
\r
271 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
275 !define Index 'Line${__LINE__}'
\r
278 ; this will loop through all the logged users and "virtual" windows users
\r
279 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
281 EnumRegKey $1 HKU "" $0
\r
282 StrCmp $1 "" "${Index}-End"
\r
284 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
285 StrCmp $2 "" "${Index}-Loop"
\r
287 Goto "${Index}-Loop"
\r
294 !macro OpenUninstallLog
\r
295 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
296 FileSeek $UninstallLog 0 END
\r
299 !macro CloseUninstallLog
\r
300 FileClose $UninstallLog
\r
301 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
304 !macro InstallFile FILEREGEX
\r
305 File "${FILEREGEX}"
\r
306 !define Index 'Line${__LINE__}'
\r
307 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
308 StrCmp $0 "" "${Index}-End"
\r
310 StrCmp $1 "" "${Index}-End"
\r
311 FileWrite $UninstallLog "$1$\r$\n"
\r
313 Goto "${Index}-Loop"
\r
318 !macro InstallFolder FOLDER
\r
319 File /r "${FOLDER}"
\r
321 Call InstallFolderInternal
\r
324 Function InstallFolderInternal
\r
326 !define Index 'Line${__LINE__}'
\r
327 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
328 StrCmp $0 "" "${Index}-End"
\r
330 StrCmp $1 "" "${Index}-End"
\r
331 StrCmp $1 "." "${Index}-Next"
\r
332 StrCmp $1 ".." "${Index}-Next"
\r
333 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
337 Call InstallFolderInternal
\r
340 Goto "${Index}-Next"
\r
342 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
345 Goto "${Index}-Loop"
\r
351 ;;;;;;;;;;;;;;;;;;;;;;
\r
352 ; Installer sections ;
\r
353 ;;;;;;;;;;;;;;;;;;;;;;
\r
355 Section "Media player (required)" SEC01
\r
357 SetShellVarContext all
\r
358 SetOutPath "$INSTDIR"
\r
360 !insertmacro OpenUninstallLog
\r
362 !insertmacro InstallFile vlc.exe
\r
363 !insertmacro InstallFile vlc.exe.manifest
\r
365 !insertmacro InstallFile ${LIBVLC_DLL}
\r
367 !ifdef LIBVLC_CONTROL_DLL
\r
368 !insertmacro InstallFile ${LIBVLC_CONTROL_DLL}
\r
370 !insertmacro InstallFile *.txt
\r
372 !insertmacro InstallFolder plugins
\r
373 !insertmacro InstallFolder locale
\r
374 !insertmacro InstallFolder osdmenu
\r
375 !insertmacro InstallFolder skins
\r
376 !insertmacro InstallFolder http
\r
377 !insertmacro InstallFolder share
\r
379 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
380 "${PRODUCT_WEB_SITE}"
\r
381 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
382 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
383 "${PRODUCT_WEB_SITE}/doc/"
\r
384 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
386 !insertmacro CloseUninstallLog
\r
388 ; Add VLC to "recomended programs" for the following extensions
\r
389 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
390 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
391 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
392 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
393 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
394 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
396 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
397 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
398 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
399 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
400 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
401 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
403 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
404 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
405 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
406 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
407 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
408 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
410 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
411 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
412 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
413 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
414 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
415 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
416 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
417 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
418 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
419 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
420 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
421 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
422 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
423 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
424 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
425 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
428 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
\r
430 StrCmp $R1 '6.0' lbl_vista lbl_done
\r
433 WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities"
\r
434 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player"
\r
435 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife"
\r
441 Section "Start Menu Shortcut" SEC02a
\r
443 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
444 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
445 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
446 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
447 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
448 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
449 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
450 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
451 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
452 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
453 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
454 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
455 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
456 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
457 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
458 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
459 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
460 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
461 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
462 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
463 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
464 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
465 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
466 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
467 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
468 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
469 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
470 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
471 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
472 "$INSTDIR\Documentation.url"
\r
473 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
474 "$INSTDIR\NEWS.txt" ""
\r
475 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
476 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
477 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
478 "$INSTDIR\vlc.exe" ""
\r
481 Section "Desktop Shortcut" SEC02b
\r
483 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
484 "$INSTDIR\vlc.exe" ""
\r
487 Section /o "Mozilla plugin" SEC03
\r
490 SetOutPath "$INSTDIR"
\r
491 !insertmacro OpenUninstallLog
\r
492 !insertmacro InstallFile mozilla\npvlc.dll
\r
493 !insertmacro CloseUninstallLog
\r
495 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
496 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
497 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
498 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
499 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
500 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
502 ; for very old version of mozilla, these lines may be needed
\r
507 ;!define Index 'Line${__LINE__}'
\r
513 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
514 ; StrCmp $R0 "" "${Index}-End"
\r
515 ; IntOp $R1 $R1 + 1
\r
516 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
517 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
519 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
520 ; !ifdef LIBVLC_DLL
\r
521 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
523 ; !ifdef LIBVLC_CONTROL_DLL
\r
524 ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2"
\r
526 ; Goto "${Index}-Loop"
\r
533 Section "ActiveX plugin" SEC04
\r
535 SetOutPath "$INSTDIR"
\r
536 !insertmacro OpenUninstallLog
\r
537 !insertmacro InstallFile activex\axvlc.dll
\r
538 !insertmacro CloseUninstallLog
\r
539 RegDLL "$INSTDIR\axvlc.dll"
\r
542 SectionGroup "File type associations" SEC06
\r
543 SectionGroup "Audio Files"
\r
544 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
546 SectionGroup "Video Files"
\r
547 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
549 SectionGroup "Other"
\r
550 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
554 Section /o "Context Menus" SEC05
\r
556 !insertmacro MacroAllExtensions AddContextMenu
\r
557 !insertmacro AddContextMenuExt "Directory"
\r
560 Section /o "Delete preferences and cache" SEC07
\r
561 !insertmacro delprefs
\r
564 ; Installer section descriptions
\r
565 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
566 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
567 "The media player itself"
\r
568 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
569 "Adds icons to your start menu for easy access"
\r
570 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
571 "Adds icon to your desktop for easy access"
\r
572 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
573 "The VLC Mozilla and Mozilla Firefox plugin"
\r
574 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
575 "The VLC ActiveX plugin"
\r
576 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
577 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
578 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
579 "Sets VLC media player as the default application for the specified file type"
\r
580 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
581 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
582 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
585 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
589 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
590 "VLC media player has already been installed. $\nDo you want to remove \
\r
591 the previous version before installing $(^Name) ?" \
\r
594 ;Run the uninstaller
\r
597 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
599 !insertmacro MUI_LANGDLL_DISPLAY
\r
603 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
604 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
605 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
606 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
608 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
609 "DisplayName" "$(^Name)"
\r
610 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
611 "UninstallString" "$INSTDIR\uninstall.exe"
\r
612 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
613 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
614 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
615 "DisplayVersion" "${PRODUCT_VERSION}"
\r
616 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
617 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
618 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
619 "Publisher" "${PRODUCT_PUBLISHER}"
\r
622 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
623 ; Uninstaller sections ;
\r
624 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
626 ; TrimNewlines (copied from NSIS documentation)
\r
627 ; input, top of stack (e.g. whatever$\r$\n)
\r
628 ; output, top of stack (replaces, with e.g. whatever)
\r
629 ; modifies no other variables.
\r
631 Function un.TrimNewlines
\r
639 StrCpy $R2 $R0 1 $R1
\r
640 StrCmp $R2 "$\r" loop
\r
641 StrCmp $R2 "$\n" loop
\r
643 IntCmp $R1 0 no_trim_needed
\r
652 Function un.RemoveEmptyDirs
\r
654 !define Index 'Line${__LINE__}'
\r
655 FindFirst $0 $1 "$INSTDIR$9*"
\r
656 StrCmp $0 "" "${Index}-End"
\r
658 StrCmp $1 "" "${Index}-End"
\r
659 StrCmp $1 "." "${Index}-Next"
\r
660 StrCmp $1 ".." "${Index}-Next"
\r
665 Call un.RemoveEmptyDirs
\r
670 RMDir "$INSTDIR$9$1"
\r
673 Goto "${Index}-Loop"
\r
679 Section "Uninstall" SEC91
\r
681 SetShellVarContext all
\r
683 !insertmacro MacroAllExtensions DeleteContextMenu
\r
684 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
685 !insertmacro DeleteContextMenuExt "Directory"
\r
687 ;remove activex plugin
\r
688 UnRegDLL "$INSTDIR\axvlc.dll"
\r
689 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
691 ;remove mozilla plugin
\r
696 !define Index 'Line${__LINE__}'
\r
702 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
703 StrCmp $R0 "" "${Index}-End"
\r
705 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
706 StrCmp $R2 "" "${Index}-Loop" ""
\r
708 ; old files (0.8.5 and before) that may be lying around
\r
709 Delete /REBOOTOK "$R2\npvlc.dll"
\r
710 Delete /REBOOTOK "$R2\libvlc.dll"
\r
711 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
712 Goto "${Index}-Loop"
\r
716 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
718 RMDir "$SMPROGRAMS\VideoLAN"
\r
719 RMDir /r $SMPROGRAMS\VideoLAN
\r
721 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
724 FileRead $UninstallLog $R0
\r
725 IfErrors UninstallEnd
\r
727 Call un.TrimNewLines
\r
729 Delete "$INSTDIR\$R0"
\r
732 FileClose $UninstallLog
\r
733 Delete "$INSTDIR\uninstall.log"
\r
734 Delete "$INSTDIR\uninstall.exe"
\r
736 Call un.RemoveEmptyDirs
\r
739 DeleteRegKey HKLM Software\VideoLAN
\r
741 DeleteRegKey HKCR Applications\vlc.exe
\r
742 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
743 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
744 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
745 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
746 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
747 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
748 DeleteRegKey HKLM Software\Clients\Media\VLC
\r
749 DeleteRegKey HKCR "VLC.MediaFile"
\r
751 DeleteRegKey HKLM \
\r
752 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
754 DeleteRegKey HKLM \
\r
755 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
757 Delete "$DESKTOP\VLC media player.lnk"
\r
759 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
760 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
764 Section /o "un.Delete preferences and cache" SEC92
\r
765 !insertmacro delprefs
\r
768 ; Uninstaller section descriptions
\r
769 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
770 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
771 "Uninstall VLC media player and all its components"
\r
772 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
773 "Deletes VLC media player preferences and cache files"
\r
774 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
776 ;Function un.onUninstSuccess
\r
778 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
779 ; "$(^Name) was successfully removed from your computer."
\r
783 !insertmacro MUI_UNGETLANGUAGE
\r