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
18 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
19 ; General configuration ;
\r
20 ;;;;;;;;;;;;;;;;;;;;;;;;;
\r
22 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"
\r
23 OutFile ..\vlc-${VERSION}-win32.exe
\r
24 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
\r
25 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
\r
26 !ifdef NSIS_LZMA_COMPRESS_WHOLE
\r
29 SetCompressor /SOLID lzma
\r
31 ;ShowInstDetails show
\r
32 ;ShowUnInstDetails show
\r
33 SetOverwrite ifnewer
\r
36 InstType "Recommended"
\r
40 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
41 ; NSIS Modern User Interface configuration ;
\r
42 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
44 ; MUI 1.67 compatible ------
\r
48 !define MUI_ABORTWARNING
\r
49 !define MUI_ICON "vlc48x48.ico"
\r
50 !define MUI_UNICON "vlc48x48.ico"
\r
51 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
55 !define MUI_WELCOMEPAGE_TITLE_3LINES
\r
56 !insertmacro MUI_PAGE_WELCOME
\r
58 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
\r
60 !insertmacro MUI_PAGE_COMPONENTS
\r
62 !insertmacro MUI_PAGE_DIRECTORY
\r
64 !insertmacro MUI_PAGE_INSTFILES
\r
66 !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"
\r
67 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
\r
68 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
\r
69 !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"
\r
70 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
\r
71 !define MUI_FINISHPAGE_NOREBOOTSUPPORT
\r
72 !insertmacro MUI_PAGE_FINISH
\r
75 !insertmacro MUI_UNPAGE_CONFIRM
\r
76 !insertmacro MUI_UNPAGE_COMPONENTS
\r
77 !insertmacro MUI_UNPAGE_INSTFILES
\r
78 !insertmacro MUI_UNPAGE_FINISH
\r
81 !insertmacro MUI_LANGUAGE "English" # first language is the default language
\r
82 !insertmacro MUI_LANGUAGE "French"
\r
83 !insertmacro MUI_LANGUAGE "German"
\r
84 !insertmacro MUI_LANGUAGE "Spanish"
\r
85 !insertmacro MUI_LANGUAGE "SimpChinese"
\r
86 !insertmacro MUI_LANGUAGE "TradChinese"
\r
87 !insertmacro MUI_LANGUAGE "Japanese"
\r
88 !insertmacro MUI_LANGUAGE "Korean"
\r
89 !insertmacro MUI_LANGUAGE "Italian"
\r
90 !insertmacro MUI_LANGUAGE "Dutch"
\r
91 !insertmacro MUI_LANGUAGE "Danish"
\r
92 !insertmacro MUI_LANGUAGE "Swedish"
\r
93 !insertmacro MUI_LANGUAGE "Norwegian"
\r
94 !insertmacro MUI_LANGUAGE "Finnish"
\r
95 !insertmacro MUI_LANGUAGE "Greek"
\r
96 !insertmacro MUI_LANGUAGE "Russian"
\r
97 !insertmacro MUI_LANGUAGE "Portuguese"
\r
98 !insertmacro MUI_LANGUAGE "Arabic"
\r
100 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
103 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
\r
107 ;;;;;;;;;;;;;;;;;;;
\r
108 ; Extension lists ;
\r
109 ;;;;;;;;;;;;;;;;;;;
\r
111 !macro MacroAudioExtensions _action
\r
112 !insertmacro ${_action} ".a52"
\r
113 !insertmacro ${_action} ".aac"
\r
114 !insertmacro ${_action} ".ac3"
\r
115 !insertmacro ${_action} ".dts"
\r
116 !insertmacro ${_action} ".flac"
\r
117 !insertmacro ${_action} ".mka"
\r
118 !insertmacro ${_action} ".mp1"
\r
119 !insertmacro ${_action} ".mp2"
\r
120 !insertmacro ${_action} ".mp3"
\r
121 !insertmacro ${_action} ".ogg"
\r
122 !insertmacro ${_action} ".spx"
\r
123 !insertmacro ${_action} ".wav"
\r
124 !insertmacro ${_action} ".wma"
\r
127 !macro MacroVideoExtensions _action
\r
128 !insertmacro ${_action} ".asf"
\r
129 !insertmacro ${_action} ".avi"
\r
130 !insertmacro ${_action} ".divx"
\r
131 !insertmacro ${_action} ".dv"
\r
132 !insertmacro ${_action} ".m1v"
\r
133 !insertmacro ${_action} ".m2v"
\r
134 !insertmacro ${_action} ".mkv"
\r
135 !insertmacro ${_action} ".mov"
\r
136 !insertmacro ${_action} ".mp4"
\r
137 !insertmacro ${_action} ".mpeg"
\r
138 !insertmacro ${_action} ".mpeg1"
\r
139 !insertmacro ${_action} ".mpeg2"
\r
140 !insertmacro ${_action} ".mpeg4"
\r
141 !insertmacro ${_action} ".mpg"
\r
142 !insertmacro ${_action} ".ps"
\r
143 !insertmacro ${_action} ".ts"
\r
144 !insertmacro ${_action} ".ogm"
\r
145 !insertmacro ${_action} ".vob"
\r
146 !insertmacro ${_action} ".wmv"
\r
149 !macro MacroOtherExtensions _action
\r
150 !insertmacro ${_action} ".asx"
\r
151 !insertmacro ${_action} ".bin"
\r
152 !insertmacro ${_action} ".cue"
\r
153 !insertmacro ${_action} ".m3u"
\r
154 !insertmacro ${_action} ".pls"
\r
155 !insertmacro ${_action} ".vlc"
\r
158 !macro MacroAllExtensions _action
\r
159 !insertmacro MacroAudioExtensions ${_action}
\r
160 !insertmacro MacroVideoExtensions ${_action}
\r
161 !insertmacro MacroOtherExtensions ${_action}
\r
164 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
165 ; File type associations ;
\r
166 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
168 Function RegisterExtension
\r
169 ; back up old value for extension $R0 (eg. ".opt")
\r
170 ReadRegStr $1 HKCR "$R0" ""
\r
171 StrCmp $1 "" NoBackup
\r
172 StrCmp $1 "VLC$R0" "NoBackup"
\r
173 WriteRegStr HKCR "$R0" "VLC.backup" $1
\r
175 WriteRegStr HKCR "$R0" "" "VLC$R0"
\r
176 ReadRegStr $0 HKCR "VLC$R0" ""
\r
177 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
\r
178 WriteRegStr HKCR "VLC$R0\shell" "" "Play"
\r
179 WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
\r
180 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
183 Function un.RegisterExtension
\r
184 ;start of restore script
\r
185 ReadRegStr $1 HKCR "$R0" ""
\r
186 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
\r
187 ReadRegStr $1 HKCR "$R0" "VLC.backup"
\r
188 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
\r
189 DeleteRegKey HKCR "$R0"
\r
192 WriteRegStr HKCR "$R0" "" $1
\r
193 DeleteRegValue HKCR "$R0" "VLC.backup"
\r
195 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
\r
198 !macro RegisterExtensionSection EXT
\r
203 Call RegisterExtension
\r
208 !macro UnRegisterExtensionSection EXT
\r
211 Call un.RegisterExtension
\r
215 !macro WriteRegStrSupportedTypes EXT
\r
216 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
\r
219 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
220 ; Context menu entries ;
\r
221 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
223 !macro AddContextMenu EXT
\r
224 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"
\r
225 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'
\r
227 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"
\r
228 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'
\r
231 !macro DeleteContextMenu EXT
\r
232 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
\r
233 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
\r
236 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
237 ; Delete prefs and cache ;
\r
238 ;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
242 !define Index 'Line${__LINE__}'
\r
245 ; this will loop through all the logged users and "virtual" windows users
\r
246 ; (it looks like users are only present in HKEY_USERS when they are logged in)
\r
248 EnumRegKey $1 HKU "" $0
\r
249 StrCmp $1 "" "${Index}-End"
\r
251 ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
\r
252 StrCmp $2 "" "${Index}-Loop"
\r
254 Goto "${Index}-Loop"
\r
261 !macro OpenUninstallLog
\r
262 FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
\r
263 FileSeek $UninstallLog 0 END
\r
266 !macro CloseUninstallLog
\r
267 FileClose $UninstallLog
\r
268 SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
\r
271 !macro InstallFile FILEREGEX
\r
272 File "${FILEREGEX}"
\r
273 !define Index 'Line${__LINE__}'
\r
274 FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
\r
275 StrCmp $0 "" "${Index}-End"
\r
277 StrCmp $1 "" "${Index}-End"
\r
278 FileWrite $UninstallLog "$1$\r$\n"
\r
280 Goto "${Index}-Loop"
\r
285 !macro InstallFolder FOLDER
\r
286 File /r "${FOLDER}"
\r
288 Call InstallFolderInternal
\r
291 Function InstallFolderInternal
\r
293 !define Index 'Line${__LINE__}'
\r
294 FindFirst $0 $1 "$INSTDIR\$9\*"
\r
295 StrCmp $0 "" "${Index}-End"
\r
297 StrCmp $1 "" "${Index}-End"
\r
298 StrCmp $1 "." "${Index}-Next"
\r
299 StrCmp $1 ".." "${Index}-Next"
\r
300 IfFileExists "$9\$1\*" 0 "${Index}-Write"
\r
304 Call InstallFolderInternal
\r
307 Goto "${Index}-Next"
\r
309 FileWrite $UninstallLog "$9\$1$\r$\n"
\r
312 Goto "${Index}-Loop"
\r
318 ;;;;;;;;;;;;;;;;;;;;;;
\r
319 ; Installer sections ;
\r
320 ;;;;;;;;;;;;;;;;;;;;;;
\r
322 Section "Media player (required)" SEC01
\r
324 SetShellVarContext all
\r
325 SetOutPath "$INSTDIR"
\r
327 !insertmacro OpenUninstallLog
\r
329 !insertmacro InstallFile vlc.exe
\r
330 !insertmacro InstallFile vlc.exe.manifest
\r
332 !insertmacro InstallFile ${LIBVLC_DLL}
\r
334 !insertmacro InstallFile *.txt
\r
336 !insertmacro InstallFolder plugins
\r
337 !insertmacro InstallFolder locale
\r
338 !insertmacro InstallFolder osdmenu
\r
339 !insertmacro InstallFolder skins
\r
340 !insertmacro InstallFolder http
\r
342 WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
\r
343 "${PRODUCT_WEB_SITE}"
\r
344 FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
\r
345 WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
\r
346 "${PRODUCT_WEB_SITE}/doc/"
\r
347 FileWrite $UninstallLog "Documentation.url$\r$\n"
\r
349 !insertmacro CloseUninstallLog
\r
351 ; Add VLC to "recomended programs" for the following extensions
\r
352 WriteRegStr HKCR Applications\vlc.exe "" ""
\r
353 WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
\r
354 WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"
\r
355 WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \
\r
356 '$INSTDIR\vlc.exe --started-from-file "%1"'
\r
357 !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
\r
359 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
360 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
\r
361 "$INSTDIR\vlc.exe --started-from-file cdda:%1"
\r
362 WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"
\r
363 WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
\r
364 "$INSTDIR\vlc.exe --started-from-file dvd:%1"
\r
366 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
\r
367 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"
\r
368 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
\r
369 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
\r
370 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"
\r
371 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
\r
373 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
\r
374 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"
\r
375 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'
\r
376 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
\r
377 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"
\r
378 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
\r
379 WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
\r
380 WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"
\r
381 WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \
\r
382 '$INSTDIR\vlc.exe --started-from-file dvd:%1'
\r
383 WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
384 WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
\r
385 WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"
\r
386 WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \
\r
387 '$INSTDIR\vlc.exe --started-from-file cdda:%1'
\r
388 WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
\r
392 Section "Start Menu Shortcut" SEC02a
\r
394 CreateDirectory "$SMPROGRAMS\VideoLAN"
\r
395 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"
\r
396 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"
\r
397 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \
\r
398 "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"
\r
399 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \
\r
400 "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"
\r
401 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"
\r
402 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \
\r
403 "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"
\r
404 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \
\r
405 "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"
\r
406 CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"
\r
407 ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX
\r
408 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \
\r
409 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"
\r
410 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \
\r
411 "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
412 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \
\r
413 "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"
\r
414 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \
\r
415 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"
\r
416 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \
\r
417 "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"
\r
418 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \
\r
419 "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"
\r
420 CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \
\r
421 "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"
\r
422 CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
\r
423 "$INSTDIR\Documentation.url"
\r
424 CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
\r
425 "$INSTDIR\NEWS.txt" ""
\r
426 CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
\r
427 "$INSTDIR\${PRODUCT_GROUP} Website.url"
\r
428 CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
\r
429 "$INSTDIR\vlc.exe" ""
\r
432 Section "Desktop Shortcut" SEC02b
\r
434 CreateShortCut "$DESKTOP\VLC media player.lnk" \
\r
435 "$INSTDIR\vlc.exe" ""
\r
438 Section /o "Mozilla plugin" SEC03
\r
441 SetOutPath "$INSTDIR"
\r
442 !insertmacro OpenUninstallLog
\r
443 !insertmacro InstallFile mozilla\npvlc.dll
\r
444 !insertmacro CloseUninstallLog
\r
446 !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
447 WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
\r
448 WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
\r
449 WriteRegStr HKLM ${Moz} "Product" "VLC media player"
\r
450 WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
\r
451 WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
\r
453 ; for very old version of mozilla, these lines may be needed
\r
458 ;!define Index 'Line${__LINE__}'
\r
464 ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
465 ; StrCmp $R0 "" "${Index}-End"
\r
466 ; IntOp $R1 $R1 + 1
\r
467 ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
468 ; StrCmp $R2 "" "${Index}-Loop" ""
\r
470 ; CopyFiles "$INSTDIR\npvlc.dll" "$R2"
\r
471 ; !ifdef LIBVLC_DLL
\r
472 ; CopyFiles ${LIBVLC_DLL} "$R2"
\r
474 ; Goto "${Index}-Loop"
\r
481 Section "ActiveX plugin" SEC04
\r
483 SetOutPath "$INSTDIR"
\r
484 !insertmacro OpenUninstallLog
\r
485 !insertmacro InstallFile activex\axvlc.dll
\r
486 !insertmacro CloseUninstallLog
\r
487 RegDLL "$INSTDIR\axvlc.dll"
\r
490 Section /o "Context Menus" SEC05
\r
492 !insertmacro MacroAllExtensions AddContextMenu
\r
493 !insertmacro AddContextMenu "Directory"
\r
496 SectionGroup "File type associations" SEC06
\r
497 SectionGroup "Audio Files"
\r
498 !insertmacro MacroAudioExtensions RegisterExtensionSection
\r
500 SectionGroup "Video Files"
\r
501 !insertmacro MacroVideoExtensions RegisterExtensionSection
\r
503 SectionGroup "Other"
\r
504 !insertmacro MacroOtherExtensions RegisterExtensionSection
\r
508 Section /o "Delete preferences and cache" SEC07
\r
509 !insertmacro delprefs
\r
512 ; Installer section descriptions
\r
513 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
\r
514 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \
\r
515 "The media player itself"
\r
516 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \
\r
517 "Adds icons to your start menu for easy access"
\r
518 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \
\r
519 "Adds icon to your desktop for easy access"
\r
520 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \
\r
521 "The VLC Mozilla and Mozilla Firefox plugin"
\r
522 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \
\r
523 "The VLC ActiveX plugin"
\r
524 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \
\r
525 "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"
\r
526 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \
\r
527 "Sets VLC media player as the default application for the specified file type"
\r
528 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \
\r
529 "Deletes VLC media player preferences and cache files leftover from previous installations"
\r
530 !insertmacro MUI_FUNCTION_DESCRIPTION_END
\r
533 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
537 MessageBox MB_YESNO|MB_ICONEXCLAMATION \
\r
538 "VLC media player has already been installed. $\nDo you want to remove \
\r
539 the previous version before installing $(^Name) ?" \
\r
542 ;Run the uninstaller
\r
545 ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
\r
547 !insertmacro MUI_LANGDLL_DISPLAY
\r
551 WriteUninstaller "$INSTDIR\uninstall.exe"
\r
552 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
\r
553 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
\r
554 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
\r
556 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
557 "DisplayName" "$(^Name)"
\r
558 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
559 "UninstallString" "$INSTDIR\uninstall.exe"
\r
560 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
561 "DisplayIcon" "$INSTDIR\vlc.exe"
\r
562 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
563 "DisplayVersion" "${PRODUCT_VERSION}"
\r
564 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
565 "URLInfoAbout" "${PRODUCT_WEB_SITE}"
\r
566 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
\r
567 "Publisher" "${PRODUCT_PUBLISHER}"
\r
570 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
571 ; Uninstaller sections ;
\r
572 ;;;;;;;;;;;;;;;;;;;;;;;;
\r
574 ; TrimNewlines (copied from NSIS documentation)
\r
575 ; input, top of stack (e.g. whatever$\r$\n)
\r
576 ; output, top of stack (replaces, with e.g. whatever)
\r
577 ; modifies no other variables.
\r
579 Function un.TrimNewlines
\r
587 StrCpy $R2 $R0 1 $R1
\r
588 StrCmp $R2 "$\r" loop
\r
589 StrCmp $R2 "$\n" loop
\r
591 IntCmp $R1 0 no_trim_needed
\r
600 Function un.RemoveEmptyDirs
\r
602 !define Index 'Line${__LINE__}'
\r
603 FindFirst $0 $1 "$INSTDIR$9*"
\r
604 StrCmp $0 "" "${Index}-End"
\r
606 StrCmp $1 "" "${Index}-End"
\r
607 StrCmp $1 "." "${Index}-Next"
\r
608 StrCmp $1 ".." "${Index}-Next"
\r
613 Call un.RemoveEmptyDirs
\r
618 RMDir "$INSTDIR$9$1"
\r
621 Goto "${Index}-Loop"
\r
627 Section "Uninstall" SEC91
\r
629 SetShellVarContext all
\r
631 !insertmacro MacroAllExtensions DeleteContextMenu
\r
632 !insertmacro MacroAllExtensions UnRegisterExtensionSection
\r
633 !insertmacro DeleteContextMenu "Directory"
\r
635 ;remove activex plugin
\r
636 UnRegDLL "$INSTDIR\axvlc.dll"
\r
637 Delete /REBOOTOK "$INSTDIR\axvlc.dll"
\r
639 ;remove mozilla plugin
\r
644 !define Index 'Line${__LINE__}'
\r
650 EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
\r
651 StrCmp $R0 "" "${Index}-End"
\r
653 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
\r
654 StrCmp $R2 "" "${Index}-Loop" ""
\r
656 ; old files (0.8.5 and before) that may be lying around
\r
657 Delete /REBOOTOK "$R2\npvlc.dll"
\r
658 Delete /REBOOTOK "$R2\libvlc.dll"
\r
659 Delete /REBOOTOK "$R2\vlcintf.xpt"
\r
660 Goto "${Index}-Loop"
\r
664 Delete /REBOOTOK "$INSTDIR\npvlc.dll"
\r
666 RMDir "$SMPROGRAMS\VideoLAN"
\r
667 RMDir /r $SMPROGRAMS\VideoLAN
\r
669 FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
\r
672 FileRead $UninstallLog $R0
\r
673 IfErrors UninstallEnd
\r
675 Call un.TrimNewLines
\r
677 Delete "$INSTDIR\$R0"
\r
680 FileClose $UninstallLog
\r
681 Delete "$INSTDIR\uninstall.log"
\r
682 Delete "$INSTDIR\uninstall.exe"
\r
684 Call un.RemoveEmptyDirs
\r
687 DeleteRegKey HKLM Software\VideoLAN
\r
689 DeleteRegKey HKCR Applications\vlc.exe
\r
690 DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
\r
691 DeleteRegKey HKCR DVD\shell\PlayWithVLC
\r
692 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
\r
693 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
\r
694 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
\r
695 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
\r
696 DeleteRegKey HKCR "VLC.MediaFile"
\r
698 DeleteRegKey HKLM \
\r
699 "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
\r
701 DeleteRegKey HKLM \
\r
702 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
\r
704 Delete "$DESKTOP\VLC media player.lnk"
\r
706 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
\r
707 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
\r
711 Section /o "un.Delete preferences and cache" SEC92
\r
712 !insertmacro delprefs
\r
715 ; Uninstaller section descriptions
\r
716 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
\r
717 !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \
\r
718 "Uninstall VLC media player and all its components"
\r
719 !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \
\r
720 "Deletes VLC media player preferences and cache files"
\r
721 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
\r
723 ;Function un.onUninstSuccess
\r
725 ; MessageBox MB_ICONINFORMATION|MB_OK \
\r
726 ; "$(^Name) was successfully removed from your computer."
\r
730 !insertmacro MUI_LANGDLL_DISPLAY
\r