]> git.sesse.net Git - vlc/blob - vlc.win32.nsi
backport [13283] [13272]
[vlc] / vlc.win32.nsi
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
2 ; NSIS installer script for vlc ;\r
3 ; (http://nsis.sourceforge.net) ;\r
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
5 \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
15 \r
16 ;;;;;;;;;;;;;;;;;;;;;;;;;\r
17 ; General configuration ;\r
18 ;;;;;;;;;;;;;;;;;;;;;;;;;\r
19 \r
20 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"\r
21 OutFile ..\vlc-${VERSION}-win32.exe\r
22 InstallDir "$PROGRAMFILES\VideoLAN\VLC"\r
23 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "Install_Dir"\r
24 !ifdef NSIS_LZMA_COMPRESS_WHOLE\r
25 SetCompressor lzma\r
26 !else\r
27 SetCompressor /SOLID lzma\r
28 !endif\r
29 ;ShowInstDetails show\r
30 ;ShowUnInstDetails show\r
31 SetOverwrite ifnewer\r
32 CRCCheck on\r
33 \r
34 InstType "Normal"\r
35 InstType "Full"\r
36 \r
37 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
38 ; NSIS Modern User Interface configuration ;\r
39 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
40 \r
41 ; MUI 1.67 compatible ------\r
42   !include "MUI.nsh"\r
43 \r
44 ; MUI Settings\r
45   !define MUI_ABORTWARNING\r
46   !define MUI_ICON "vlc48x48new.ico"\r
47   !define MUI_UNICON "vlc48x48new.ico"\r
48   !define MUI_COMPONENTSPAGE_SMALLDESC\r
49 \r
50 ; Installer pages\r
51   ; Welcome page\r
52     !define MUI_WELCOMEPAGE_TITLE_3LINES\r
53     !insertmacro MUI_PAGE_WELCOME\r
54   ; License page\r
55     !insertmacro MUI_PAGE_LICENSE "COPYING.txt"\r
56   ; Components page\r
57     !insertmacro MUI_PAGE_COMPONENTS\r
58   ; Directory page\r
59     !insertmacro MUI_PAGE_DIRECTORY\r
60   ; Instfiles page\r
61     !insertmacro MUI_PAGE_INSTFILES\r
62   ; Finish page\r
63     !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"\r
64     !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"\r
65     !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED\r
66     !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"\r
67     !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"\r
68     !define MUI_FINISHPAGE_NOREBOOTSUPPORT\r
69     !insertmacro MUI_PAGE_FINISH\r
70 \r
71 ; Uninstaller pages\r
72     !insertmacro MUI_UNPAGE_CONFIRM\r
73     !insertmacro MUI_UNPAGE_COMPONENTS\r
74     !insertmacro MUI_UNPAGE_INSTFILES\r
75     !insertmacro MUI_UNPAGE_FINISH\r
76 \r
77 ; Language files\r
78   !insertmacro MUI_LANGUAGE "English" # first language is the default language\r
79   !insertmacro MUI_LANGUAGE "French"\r
80   !insertmacro MUI_LANGUAGE "German"\r
81   !insertmacro MUI_LANGUAGE "Spanish"\r
82   !insertmacro MUI_LANGUAGE "SimpChinese"\r
83   !insertmacro MUI_LANGUAGE "TradChinese"\r
84   !insertmacro MUI_LANGUAGE "Japanese"\r
85   !insertmacro MUI_LANGUAGE "Korean"\r
86   !insertmacro MUI_LANGUAGE "Italian"\r
87   !insertmacro MUI_LANGUAGE "Dutch"\r
88   !insertmacro MUI_LANGUAGE "Danish"\r
89   !insertmacro MUI_LANGUAGE "Swedish"\r
90   !insertmacro MUI_LANGUAGE "Norwegian"\r
91   !insertmacro MUI_LANGUAGE "Finnish"\r
92   !insertmacro MUI_LANGUAGE "Greek"\r
93   !insertmacro MUI_LANGUAGE "Russian"\r
94   !insertmacro MUI_LANGUAGE "Portuguese"\r
95   !insertmacro MUI_LANGUAGE "Arabic"\r
96 \r
97 !insertmacro MUI_RESERVEFILE_LANGDLL\r
98 \r
99 ; Reserve files\r
100   !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS\r
101 \r
102 ; MUI end ------\r
103 \r
104 ;;;;;;;;;;;;;;;;;;;\r
105 ; Extension lists ;\r
106 ;;;;;;;;;;;;;;;;;;;\r
107 \r
108 !macro MacroAudioExtensions _action\r
109   !insertmacro ${_action} ".a52"\r
110   !insertmacro ${_action} ".aac"\r
111   !insertmacro ${_action} ".ac3"\r
112   !insertmacro ${_action} ".dts"\r
113   !insertmacro ${_action} ".flac"\r
114   !insertmacro ${_action} ".mka"\r
115   !insertmacro ${_action} ".mp1"\r
116   !insertmacro ${_action} ".mp2"\r
117   !insertmacro ${_action} ".mp3"\r
118   !insertmacro ${_action} ".ogg"\r
119   !insertmacro ${_action} ".spx"\r
120   !insertmacro ${_action} ".wav"\r
121   !insertmacro ${_action} ".wma"\r
122 !macroend\r
123 \r
124 !macro MacroVideoExtensions _action\r
125   !insertmacro ${_action} ".asf"\r
126   !insertmacro ${_action} ".avi"\r
127   !insertmacro ${_action} ".divx"\r
128   !insertmacro ${_action} ".dv"\r
129   !insertmacro ${_action} ".m1v"\r
130   !insertmacro ${_action} ".m2v"\r
131   !insertmacro ${_action} ".mkv"\r
132   !insertmacro ${_action} ".mov"\r
133   !insertmacro ${_action} ".mp4"\r
134   !insertmacro ${_action} ".mpeg"\r
135   !insertmacro ${_action} ".mpeg1"\r
136   !insertmacro ${_action} ".mpeg2"\r
137   !insertmacro ${_action} ".mpeg4"\r
138   !insertmacro ${_action} ".mpg"\r
139   !insertmacro ${_action} ".ps"\r
140   !insertmacro ${_action} ".ts"\r
141   !insertmacro ${_action} ".ogm"\r
142   !insertmacro ${_action} ".vob"\r
143   !insertmacro ${_action} ".wmv"\r
144 !macroend\r
145 \r
146 !macro MacroOtherExtensions _action\r
147   !insertmacro ${_action} ".asx"\r
148   !insertmacro ${_action} ".bin"\r
149   !insertmacro ${_action} ".cue"\r
150   !insertmacro ${_action} ".m3u"\r
151   !insertmacro ${_action} ".pls"\r
152   !insertmacro ${_action} ".vlc"\r
153 !macroend\r
154 \r
155 !macro MacroAllExtensions _action\r
156   !insertmacro MacroAudioExtensions ${_action}\r
157   !insertmacro MacroVideoExtensions ${_action}\r
158   !insertmacro MacroOtherExtensions ${_action}\r
159 !macroend\r
160 \r
161 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
162 ; File type associations ;\r
163 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
164 \r
165 Function RegisterExtension\r
166   ; back up old value for extension $R0 (eg. ".opt")\r
167   ReadRegStr $1 HKCR "$R0" ""\r
168   StrCmp $1 "" NoBackup\r
169     StrCmp $1 "VLC$R0" "NoBackup"\r
170     WriteRegStr HKCR "$R0" "VLC.backup" $1\r
171 NoBackup:\r
172   WriteRegStr HKCR "$R0" "" "VLC$R0"\r
173   ReadRegStr $0 HKCR "VLC$R0" ""\r
174   WriteRegStr HKCR "VLC$R0" "" "VLC media file"\r
175   WriteRegStr HKCR "VLC$R0\shell" "" "Play"\r
176   WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" "%1"'\r
177   WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
178 FunctionEnd\r
179 \r
180 Function un.RegisterExtension\r
181   ;start of restore script\r
182   ReadRegStr $1 HKCR "$R0" ""\r
183   StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it\r
184     ReadRegStr $1 HKCR "$R0" "VLC.backup"\r
185     StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key\r
186       DeleteRegKey HKCR "$R0"\r
187     Goto NoOwn\r
188 Restore:\r
189       WriteRegStr HKCR "$R0" "" $1\r
190       DeleteRegValue HKCR "$R0" "VLC.backup"\r
191 NoOwn:\r
192     DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings\r
193 FunctionEnd\r
194 \r
195 !macro RegisterExtensionSection EXT\r
196   Section /o ${EXT}\r
197     SectionIn 2 3\r
198     Push $R0\r
199     StrCpy $R0 ${EXT}\r
200     Call RegisterExtension\r
201     Pop $R0\r
202   SectionEnd\r
203 !macroend\r
204 \r
205 !macro UnRegisterExtensionSection EXT\r
206   Push $R0\r
207   StrCpy $R0 ${EXT}\r
208   Call un.RegisterExtension\r
209   Pop $R0\r
210 !macroend\r
211 \r
212 !macro WriteRegStrSupportedTypes EXT\r
213   WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""\r
214 !macroend\r
215 \r
216 ;;;;;;;;;;;;;;;;;;;;;;;;\r
217 ; Context menu entries ;\r
218 ;;;;;;;;;;;;;;;;;;;;;;;;\r
219 \r
220 !macro AddContextMenu EXT\r
221   WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"\r
222   WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --no-playlist-enqueue "%1"'\r
223 \r
224   WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"\r
225   WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --one-instance --playlist-enqueue "%1"'\r
226 !macroend\r
227 \r
228 !macro DeleteContextMenu EXT\r
229   DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC\r
230   DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC\r
231 !macroend\r
232 \r
233 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
234 ; Delete prefs and cache ;\r
235 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
236 \r
237 !macro delprefs\r
238   SectionIn 2 3\r
239   StrCpy $0 0\r
240   !define Index 'Line${__LINE__}'\r
241   "${Index}-Loop:"\r
242   ; FIXME\r
243   ; this will loop through all the logged users and "virtual" windows users\r
244   ; (it looks like users are only present in HKEY_USERS when they are logged in)\r
245     ClearErrors\r
246     EnumRegKey $1 HKU "" $0\r
247     StrCmp $1 "" "${Index}-End"\r
248     IntOp $0 $0 + 1\r
249     ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData\r
250     StrCmp $2 "" "${Index}-Loop"\r
251     RMDir /r "$2\vlc"\r
252     Goto "${Index}-Loop"\r
253   "${Index}-End:"\r
254   !undef Index\r
255 !macroend\r
256 \r
257 ;;;;;;;;;;;;;;;;;;;;;;\r
258 ; Installer sections ;\r
259 ;;;;;;;;;;;;;;;;;;;;;;\r
260 \r
261 Section "Media player (required)" SEC01\r
262   SectionIn 1 2 3 RO\r
263   SetShellVarContext all\r
264   SetOutPath "$INSTDIR"\r
265 \r
266   File  vlc.exe\r
267   File  vlc.exe.manifest\r
268   File  *.txt\r
269 \r
270   File  /r plugins\r
271   File  /r locale\r
272   File  /r osdmenu\r
273   File  /r skins\r
274   File  /r http\r
275 \r
276   ; Add VLC to "recomended programs" for the following extensions\r
277   WriteRegStr HKCR Applications\vlc.exe "" ""\r
278   WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"\r
279   WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"\r
280   WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \\r
281     '$INSTDIR\vlc.exe "%1"'\r
282   !insertmacro MacroAllExtensions WriteRegStrSupportedTypes\r
283 \r
284   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"\r
285   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \\r
286     "$INSTDIR\vlc.exe cdda:%1"\r
287   WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"\r
288   WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \\r
289     "$INSTDIR\vlc.exe dvd:%1"\r
290 \r
291   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""\r
292   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"\r
293   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'\r
294   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"\r
295   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"\r
296   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"\r
297 \r
298   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""\r
299   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"\r
300   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'\r
301   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"\r
302   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"\r
303   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"\r
304   WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"\r
305   WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"\r
306   WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \\r
307     '$INSTDIR\vlc.exe dvd:%1'\r
308   WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
309   WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"\r
310   WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"\r
311   WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \\r
312     '$INSTDIR\vlc.exe cdda:%1'\r
313   WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
314 \r
315 SectionEnd\r
316 \r
317 Section "Start Menu Shortcut" SEC02a\r
318   SectionIn 1 2 3\r
319   CreateDirectory "$SMPROGRAMS\VideoLAN"\r
320   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \\r
321     "$INSTDIR\vlc.exe" "--intf wx --wx-embed"\r
322   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (alt).lnk" \\r
323     "$INSTDIR\vlc.exe" "--intf wx --no-wx-embed"\r
324   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (skins).lnk" \\r
325     "$INSTDIR\vlc.exe" "--intf skins"\r
326   CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC defaults and quit.lnk" \\r
327     "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit "\r
328   WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \\r
329     "${PRODUCT_WEB_SITE}"\r
330   CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_NAME} Website.lnk" \\r
331     "$INSTDIR\${PRODUCT_NAME}.url"\r
332   WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \\r
333     "${PRODUCT_WEB_SITE}/doc/"\r
334   CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \\r
335     "$INSTDIR\Documentation.url"\r
336 SectionEnd\r
337 \r
338 Section "Desktop Shortcut" SEC02b\r
339   SectionIn 1 2 3\r
340   CreateShortCut "$DESKTOP\VLC media player.lnk" \\r
341     "$INSTDIR\vlc.exe" "--intf wx"\r
342 SectionEnd\r
343 \r
344 Section /o "Mozilla plugin" SEC03\r
345   SectionIn 2 3\r
346   File /r mozilla\r
347 \r
348   ; doesn't work. bug in mozilla/mozilla firefox or moz documentation (xpt file isn't loaded)\r
349   ; see mozilla bugs 184506 and 159445\r
350   ;!define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"\r
351   ;WriteRegStr HKLM ${Moz} "Description" "VideoLAN VLC plugin for Mozilla"\r
352   ;WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\mozilla\npvlc.dll"\r
353   ;WriteRegStr HKLM ${Moz} "Product" "VLC media player"\r
354   ;WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"\r
355   ;WriteRegStr HKLM ${Moz} "Version" "${VERSION}"\r
356   ;WriteRegStr HKLM ${Moz} "XPTPath" "$INSTDIR\mozilla\vlcintf.xpt"\r
357 \r
358   Push $R0\r
359   Push $R1\r
360   Push $R2\r
361 \r
362   !define Index 'Line${__LINE__}'\r
363   StrCpy $R1 "0"\r
364 \r
365   "${Index}-Loop:"\r
366 \r
367     ; Check for Key\r
368     EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"\r
369     StrCmp $R0 "" "${Index}-End"\r
370     IntOp $R1 $R1 + 1\r
371     ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"\r
372     StrCmp $R2 "" "${Index}-Loop" ""\r
373 \r
374     CopyFiles "$INSTDIR\mozilla\*" "$R2"\r
375     Goto "${Index}-Loop"\r
376 \r
377   "${Index}-End:"\r
378   !undef Index\r
379 \r
380 SectionEnd\r
381 \r
382 Section /o "ActiveX plugin" SEC04\r
383   SectionIn 2 3\r
384   SetOutPath "$INSTDIR"\r
385   File activex\axvlc.dll\r
386   RegDLL "$INSTDIR\axvlc.dll"\r
387 SectionEnd\r
388 \r
389 Section "Context Menus" SEC05\r
390   SectionIn 1 2 3\r
391   !insertmacro MacroAllExtensions AddContextMenu\r
392   !insertmacro AddContextMenu "Folder"\r
393 SectionEnd\r
394 \r
395 SectionGroup "File type associations" SEC06\r
396   SectionGroup "Audio Files"\r
397     !insertmacro MacroAudioExtensions RegisterExtensionSection\r
398   SectionGroupEnd\r
399   SectionGroup "Video Files"\r
400     !insertmacro MacroVideoExtensions RegisterExtensionSection\r
401   SectionGroupEnd\r
402   SectionGroup "Other"\r
403     !insertmacro MacroOtherExtensions RegisterExtensionSection\r
404   SectionGroupEnd\r
405 SectionGroupEnd\r
406 \r
407 Section /o "Delete preferences and cache" SEC07\r
408   !insertmacro delprefs\r
409 SectionEnd\r
410 \r
411 ; Installer section descriptions\r
412 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
413   !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \\r
414     "The media player itself"\r
415   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \\r
416     "Adds icons to your start menu for easy access"\r
417   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \\r
418     "Adds icon to your desktop for easy access"\r
419   !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \\r
420     "The VLC Mozilla and Mozilla Firefox plugin"\r
421   !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \\r
422     "The VLC ActiveX plugin"\r
423   !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \\r
424     "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"\r
425   !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \\r
426     "Sets VLC media player as the default application for the specified file type"\r
427   !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \\r
428     "Deletes VLC media player preferences and cache files leftover from previous installations"\r
429 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
430 \r
431 Function .onInit\r
432   ReadRegStr $R0  ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
433   "UninstallString"\r
434   StrCmp $R0 "" done\r
435  \r
436   MessageBox MB_YESNO|MB_ICONEXCLAMATION \\r
437   "VLC media player has already been installed. $\nDo you want to remove \\r
438   the previous version before installing $(^Name) ?" \\r
439   IDNO done\r
440   \r
441   ;Run the uninstaller\r
442   ;uninst:\r
443     ClearErrors\r
444     ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file\r
445   done:\r
446   !insertmacro MUI_LANGDLL_DISPLAY\r
447 FunctionEnd\r
448 \r
449 Section -Post\r
450   WriteUninstaller "$INSTDIR\uninstall.exe"\r
451   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR\r
452   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"\r
453   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"\r
454 \r
455   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
456     "DisplayName" "$(^Name)"\r
457   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
458     "UninstallString" "$INSTDIR\uninstall.exe"\r
459   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
460     "DisplayIcon" "$INSTDIR\vlc.exe"\r
461   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
462     "DisplayVersion" "${PRODUCT_VERSION}"\r
463   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
464     "URLInfoAbout" "${PRODUCT_WEB_SITE}"\r
465   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
466     "Publisher" "${PRODUCT_PUBLISHER}"\r
467 SectionEnd\r
468 \r
469 ;;;;;;;;;;;;;;;;;;;;;;;;\r
470 ; Uninstaller sections ;\r
471 ;;;;;;;;;;;;;;;;;;;;;;;;\r
472 \r
473 Section "Uninstall" SEC91\r
474   SectionIn 1 2 3 RO\r
475   SetShellVarContext all\r
476 \r
477   !insertmacro MacroAllExtensions DeleteContextMenu\r
478   !insertmacro MacroAllExtensions UnRegisterExtensionSection\r
479   !insertmacro DeleteContextMenu "Folder"\r
480 \r
481   UnRegDLL "$INSTDIR\axvlc.dll"\r
482   Delete /REBOOTOK "$INSTDIR\axvlc.dll"\r
483 \r
484   ;remove mozilla plugin\r
485   Push $R0\r
486   Push $R1\r
487   Push $R2\r
488 \r
489   !define Index 'Line${__LINE__}'\r
490   StrCpy $R1 "0"\r
491 \r
492   "${Index}-Loop:"\r
493 \r
494     ; Check for Key\r
495     EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"\r
496     StrCmp $R0 "" "${Index}-End"\r
497     IntOp $R1 $R1 + 1\r
498     ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"\r
499     StrCmp $R2 "" "${Index}-Loop" ""\r
500 \r
501     Delete "$R2\vlcintf.xpt"\r
502     Delete "$R2\npvlc.dll"\r
503     Goto "${Index}-Loop"\r
504 \r
505   "${Index}-End:"\r
506   !undef Index\r
507 \r
508   RMDir "$SMPROGRAMS\VideoLAN"\r
509   RMDir /r $SMPROGRAMS\VideoLAN\r
510   RMDir /r $INSTDIR\r
511   DeleteRegKey HKLM Software\VideoLAN\r
512 \r
513   DeleteRegKey HKCR Applications\vlc.exe\r
514   DeleteRegKey HKCR AudioCD\shell\PlayWithVLC\r
515   DeleteRegKey HKCR DVD\shell\PlayWithVLC\r
516   DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"\r
517   DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival\r
518   DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"\r
519   DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival\r
520   DeleteRegKey HKCR "VLC.MediaFile"\r
521 \r
522   DeleteRegKey HKLM \\r
523     "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"\r
524 \r
525   DeleteRegKey HKLM \\r
526     "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
527 \r
528   Delete "$DESKTOP\VLC media player.lnk"\r
529 \r
530   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"\r
531   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
532   SetAutoClose true\r
533 SectionEnd\r
534 \r
535 Section /o "un.Delete preferences and cache" SEC92\r
536   !insertmacro delprefs\r
537 SectionEnd\r
538 \r
539 ; Uninstaller section descriptions\r
540 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN\r
541   !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \\r
542     "Uninstall VLC media player and all its components"\r
543   !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \\r
544     "Deletes VLC media player preferences and cache files"\r
545 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END\r
546 \r
547 ;Function un.onUninstSuccess\r
548 ;  HideWindow\r
549 ;  MessageBox MB_ICONINFORMATION|MB_OK \\r
550 ;    "$(^Name) was successfully removed from your computer."\r
551 ;FunctionEnd\r
552 \r
553 Function un.onInit\r
554   !insertmacro MUI_LANGDLL_DISPLAY\r
555 FunctionEnd\r