X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=extras%2Fpackage%2Fwin32%2Fvlc.win32.nsi.in;h=a2624ea4b90eeaed86b960893ba9581f8d1d5b1f;hb=6a8ae65b89476b0727fefdf11c91ee79f57e2137;hp=566f159e37edf9632db482458090821ee19afb42;hpb=d06621e6fd1ca10c4ce6f0dfa17000d4c5ca1b5e;p=vlc diff --git a/extras/package/win32/vlc.win32.nsi.in b/extras/package/win32/vlc.win32.nsi.in index 566f159e37..a2624ea4b9 100644 --- a/extras/package/win32/vlc.win32.nsi.in +++ b/extras/package/win32/vlc.win32.nsi.in @@ -9,8 +9,8 @@ !define VERSION @VERSION@ !define PRODUCT_VERSION @VERSION@ !define PRODUCT_GROUP "VideoLAN" -!define PRODUCT_PUBLISHER "VideoLAN Team" -!define PRODUCT_WEB_SITE "http://www.videolan.org" +!define PRODUCT_PUBLISHER "VideoLAN" +!define PRODUCT_WEB_SITE "http://www.videolan.org/" !define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" @@ -20,25 +20,23 @@ !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}" !define MUI_LANGDLL_REGISTRY_VALUENAME "Language" -@FILE_LIBVLCCORE_DLL@ -@FILE_LIBVLC_DLL@ +!define INSTALL_ACTIVEX +!define INSTALL_MOZILLA ;;;;;;;;;;;;;;;;;;;;;;;;; ; General configuration ; ;;;;;;;;;;;;;;;;;;;;;;;;; Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" -OutFile ..\vlc-${VERSION}-win32.exe -InstallDir "$PROGRAMFILES\VideoLAN\VLC" -InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" +@HAVE_WIN64_FALSE@ OutFile ..\vlc-${VERSION}-win32.exe +@HAVE_WIN64_TRUE@ OutFile ..\vlc-${VERSION}-win64.exe +InstallDir "$@PROGRAMFILES@\VideoLAN\VLC" !ifdef NSIS_LZMA_COMPRESS_WHOLE SetCompressor lzma !else SetCompressor /SOLID lzma !endif -;ShowInstDetails show -;ShowUnInstDetails show SetOverwrite ifnewer CRCCheck on BrandingText "${PRODUCT_GROUP} ${PRODUCT_NAME}" @@ -47,6 +45,11 @@ InstType $Name_InstTypeRecommended InstType $Name_InstTypeMinimum InstType $Name_InstTypeFull +RequestExecutionLevel user +!addincludedir NSIS +!addplugindir NSIS +!include UAC.nsh + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; NSIS Modern User Interface configuration ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -56,8 +59,8 @@ InstType $Name_InstTypeFull ; MUI Settings !define MUI_ABORTWARNING - !define MUI_ICON "vlc48x48.ico" - !define MUI_UNICON "vlc48x48.ico" + !define MUI_ICON "vlc.ico" + !define MUI_UNICON "vlc.ico" !define MUI_COMPONENTSPAGE_SMALLDESC ; Installer pages @@ -65,6 +68,8 @@ InstType $Name_InstTypeFull !define MUI_WELCOMEPAGE_TITLE_3LINES !insertmacro MUI_PAGE_WELCOME ; License page + !define MUI_LICENSEPAGE_BUTTON $(^NextBtn) + !define MUI_LICENSEPAGE_TEXT_BOTTOM $License_NextText !insertmacro MUI_PAGE_LICENSE "COPYING.txt" ; Components page !insertmacro MUI_PAGE_COMPONENTS @@ -73,9 +78,6 @@ InstType $Name_InstTypeFull ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page - !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe" - !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt" - !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED !define MUI_FINISHPAGE_LINK $Link_VisitWebsite !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/" !define MUI_FINISHPAGE_NOREBOOTSUPPORT @@ -105,11 +107,19 @@ InstType $Name_InstTypeFull !insertmacro MUI_LANGUAGE "Greek" !insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "Portuguese" + !insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "Arabic" !insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "Romanian" !insertmacro MUI_LANGUAGE "Slovak" + !insertmacro MUI_LANGUAGE "Serbian" !insertmacro MUI_LANGUAGE "Czech" + !insertmacro MUI_LANGUAGE "Hungarian" + !insertmacro MUI_LANGUAGE "Catalan" + !insertmacro MUI_LANGUAGE "Bulgarian" + !insertmacro MUI_LANGUAGE "Estonian" + !insertmacro MUI_LANGUAGE "Lithuanian" + !insertmacro MUI_LANGUAGE "Basque" ; Reserve files for solid compression !insertmacro MUI_RESERVEFILE_LANGDLL @@ -121,184 +131,12 @@ InstType $Name_InstTypeFull ; Macro and Functions ; ;;;;;;;;;;;;;;;;;;;;;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; 1. File type associations ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; Function that register one extension for VLC -Function RegisterExtension - ; back up old value for extension $R0 (eg. ".opt") - ReadRegStr $1 HKCR "$R0" "" - StrCmp $1 "" NoBackup - StrCmp $1 "VLC$R0" "NoBackup" - WriteRegStr HKCR "$R0" "VLC.backup" $1 -NoBackup: - WriteRegStr HKCR "$R0" "" "VLC$R0" - ReadRegStr $0 HKCR "VLC$R0" "" - WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)" - WriteRegStr HKCR "VLC$R0\shell" "" "Play" - WriteRegStr HKCR "VLC$R0\shell\Play" "" $ShellAssociation_Play - WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"' - WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' - -;;; Vista Only part - ; Vista detection - ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion - StrCpy $R2 $R1 3 - StrCmp $R2 '6.0' ForVista ToEnd -ForVista: - WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0" - -ToEnd: -FunctionEnd - -;; Function that removes one extension that VLC owns. -Function un.RegisterExtension - ;start of restore script - ReadRegStr $1 HKCR "$R0" "" - StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it - ; Read the old value from Backup - ReadRegStr $1 HKCR "$R0" "VLC.backup" - StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key - DeleteRegKey HKCR "$R0" - Goto NoOwn -Restore: - WriteRegStr HKCR "$R0" "" $1 - DeleteRegValue HKCR "$R0" "VLC.backup" -NoOwn: - DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings - DeleteRegKey HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations\VLC$R0" ; for vista -FunctionEnd - -!macro RegisterExtensionSection EXT - Section ${EXT} - SectionIn 1 3 - Push $R0 - StrCpy $R0 ${EXT} - Call RegisterExtension - Pop $R0 - SectionEnd -!macroend - -!macro UnRegisterExtensionSection EXT - Push $R0 - StrCpy $R0 ${EXT} - Call un.RegisterExtension - Pop $R0 -!macroend - -!macro WriteRegStrSupportedTypes EXT - WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} "" -!macroend - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Extension lists Macros ; -; Those macros calls the previous functions ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -!macro MacroAudioExtensions _action - !insertmacro ${_action} ".a52" - !insertmacro ${_action} ".aac" - !insertmacro ${_action} ".ac3" - !insertmacro ${_action} ".dts" - !insertmacro ${_action} ".flac" - !insertmacro ${_action} ".m4a" - !insertmacro ${_action} ".m4p" - !insertmacro ${_action} ".mka" - !insertmacro ${_action} ".mod" - !insertmacro ${_action} ".mp1" - !insertmacro ${_action} ".mp2" - !insertmacro ${_action} ".mp3" - !insertmacro ${_action} ".oma" - !insertmacro ${_action} ".oga" - !insertmacro ${_action} ".spx" - !insertmacro ${_action} ".wav" - !insertmacro ${_action} ".wma" - !insertmacro ${_action} ".xm" -!macroend - -!macro MacroVideoExtensions _action - !insertmacro ${_action} ".asf" - !insertmacro ${_action} ".avi" - !insertmacro ${_action} ".divx" - !insertmacro ${_action} ".dv" - !insertmacro ${_action} ".flv" - !insertmacro ${_action} ".gxf" - !insertmacro ${_action} ".m1v" - !insertmacro ${_action} ".m2v" - !insertmacro ${_action} ".m2ts" - !insertmacro ${_action} ".m4v" - !insertmacro ${_action} ".mkv" - !insertmacro ${_action} ".mov" - !insertmacro ${_action} ".mp4" - !insertmacro ${_action} ".mpeg" - !insertmacro ${_action} ".mpeg1" - !insertmacro ${_action} ".mpeg2" - !insertmacro ${_action} ".mpeg4" - !insertmacro ${_action} ".mpg" - !insertmacro ${_action} ".mts" - !insertmacro ${_action} ".mxf" - !insertmacro ${_action} ".nuv" - !insertmacro ${_action} ".ogg" - !insertmacro ${_action} ".ogm" - !insertmacro ${_action} ".ogx" - !insertmacro ${_action} ".ogv" - !insertmacro ${_action} ".ts" - !insertmacro ${_action} ".vob" - !insertmacro ${_action} ".wmv" -!macroend - -!macro MacroOtherExtensions _action - !insertmacro ${_action} ".asx" - !insertmacro ${_action} ".bin" - !insertmacro ${_action} ".cue" - !insertmacro ${_action} ".m3u" - !insertmacro ${_action} ".pls" - !insertmacro ${_action} ".vlc" - !insertmacro ${_action} ".xspf" -!macroend - -; One macro to rule them all -!macro MacroAllExtensions _action - !insertmacro MacroAudioExtensions ${_action} - !insertmacro MacroVideoExtensions ${_action} - !insertmacro MacroOtherExtensions ${_action} -!macroend - -;;;;;;;;;;;;;;;;;;;;;;;;;;; -; 2. Context menu entries ; -;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; Generic function for adding the context menu for one ext. -!macro AddContextMenuExt EXT - WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith - WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"' - - WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist - WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"' -!macroend - -!macro AddContextMenu EXT - Push $R0 - ReadRegStr $R0 HKCR ${EXT} "" - !insertmacro AddContextMenuExt $R0 - Pop $R0 -!macroend - -!macro DeleteContextMenuExt EXT - DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC - DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC -!macroend - -!macro DeleteContextMenu EXT - Push $R0 - ReadRegStr $R0 HKCR ${EXT} "" - !insertmacro DeleteContextMenuExt $R0 - Pop $R0 -!macroend +!include helpers/extensions.nsh +Var UninstallLog +!include helpers/install.nsh ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; 3. Delete prefs and cache ; +; Delete prefs Macro ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; !macro delprefs @@ -320,77 +158,12 @@ FunctionEnd !undef Index !macroend -;;;;;;;;;;;;;;; -; 4. Logging ; -;;;;;;;;;;;;;;; -Var UninstallLog -!macro OpenUninstallLog - FileOpen $UninstallLog "$INSTDIR\uninstall.log" a - FileSeek $UninstallLog 0 END -!macroend - -!macro CloseUninstallLog - FileClose $UninstallLog - SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN -!macroend - -;;;;;;;;;;;;;;;;;;;; -; 5. Installations ; -;;;;;;;;;;;;;;;;;;;; -!macro InstallFile FILEREGEX - File "${FILEREGEX}" - !define Index 'Line${__LINE__}' - FindFirst $0 $1 "$INSTDIR\${FILEREGEX}" - StrCmp $0 "" "${Index}-End" - "${Index}-Loop:" - StrCmp $1 "" "${Index}-End" - FileWrite $UninstallLog "$1$\r$\n" - FindNext $0 $1 - Goto "${Index}-Loop" - "${Index}-End:" - !undef Index -!macroend - -!macro InstallFolder FOLDER - File /r "${FOLDER}" - Push "${FOLDER}" - Call InstallFolderInternal -!macroend - -Function InstallFolderInternal - Pop $9 - !define Index 'Line${__LINE__}' - FindFirst $0 $1 "$INSTDIR\$9\*" - StrCmp $0 "" "${Index}-End" - "${Index}-Loop:" - StrCmp $1 "" "${Index}-End" - StrCmp $1 "." "${Index}-Next" - StrCmp $1 ".." "${Index}-Next" - IfFileExists "$9\$1\*" 0 "${Index}-Write" - Push $0 - Push $9 - Push "$9\$1" - Call InstallFolderInternal - Pop $9 - Pop $0 - Goto "${Index}-Next" - "${Index}-Write:" - FileWrite $UninstallLog "$9\$1$\r$\n" - "${Index}-Next:" - FindNext $0 $1 - Goto "${Index}-Loop" - "${Index}-End:" - !undef Index -FunctionEnd -;;; End of Macros - - ;;;;;;;;;;;;;;;;;;;;;; ; Installer sections ; ; The CORE of the ; ; installer ; ;;;;;;;;;;;;;;;;;;;;;; - + Section $Name_Section01 SEC01 SectionIn 1 2 3 RO SetShellVarContext all @@ -401,12 +174,10 @@ Section $Name_Section01 SEC01 ; VLC.exe, libvlc.dll !insertmacro InstallFile vlc.exe !insertmacro InstallFile vlc.exe.manifest - !ifdef LIBVLCCORE_DLL - !insertmacro InstallFile ${LIBVLCCORE_DLL} - !endif - !ifdef LIBVLC_DLL - !insertmacro InstallFile ${LIBVLC_DLL} - !endif + !insertmacro InstallFile vlc-cache-gen.exe + + ; All dlls + !insertmacro InstallFile *.dll ; Text files !insertmacro InstallFile *.txt @@ -414,42 +185,50 @@ Section $Name_Section01 SEC01 ; Subfolders !insertmacro InstallFolder plugins !insertmacro InstallFolder locale - !insertmacro InstallFolder osdmenu - !insertmacro InstallFolder skins - !insertmacro InstallFolder http - !insertmacro InstallFolder lua + !insertmacro InstallFolder sdk +@BUILD_OSDMENU_TRUE@ !insertmacro InstallFolder osdmenu +@BUILD_SKINS_TRUE@ !insertmacro InstallFolder skins +@BUILD_LUA_TRUE@ !insertmacro InstallFolder lua + + ; Generate the cache and add it to uninstall.log + ExecWait "$INSTDIR\vlc-cache-gen.exe $INSTDIR\plugins" + FindFirst $0 $1 "$INSTDIR\plugins\*.dat" + FileWrite $UninstallLog "plugins\$1$\r$\n" + FindClose $0 + ; URLs - WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \ - "${PRODUCT_WEB_SITE}" + WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n" - WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \ - "${PRODUCT_WEB_SITE}/doc/" + WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}/doc/" FileWrite $UninstallLog "Documentation.url$\r$\n" - WriteIniStr "$INSTDIR\New_Skins.url" "InternetShortcut" "URL" \ - "${PRODUCT_WEB_SITE}/vlc/skins.php" + WriteIniStr "$INSTDIR\New_Skins.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}/vlc/skins.php" FileWrite $UninstallLog "New_Skins.url$\r$\n" !insertmacro CloseUninstallLog - ; Add VLC to "recomended programs" for the following extensions + ; Add VLC to "recommended programs" for the following extensions WriteRegStr HKCR Applications\vlc.exe "" "" WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player" - WriteRegStr HKCR Applications\vlc.exe\shell\Play "" $ContextMenuEntry_PlayWith - WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \ - '"$INSTDIR\vlc.exe" --started-from-file "%1"' + WriteRegStr HKCR Applications\vlc.exe\shell\Open "" $ContextMenuEntry_PlayWith + WriteRegStr HKCR Applications\vlc.exe\shell\Open\command "" '"$INSTDIR\vlc.exe" --started-from-file "%1"' !insertmacro MacroAllExtensions WriteRegStrSupportedTypes -; Vista Registration - ; Vista detection +; Windows default programs Registration + ; Vista and above detection ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion - StrCpy $R1 $R0 3 - StrCmp $R1 '6.0' lbl_vista lbl_done + StrCpy $R1 $R0 1 + StrCmp $R1 '6' lbl_vista lbl_done lbl_vista: WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities" WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player" WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife" + WriteRegStr HKLM "Software\Clients\Media\VLC" "" "VLC media player" + WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "HideIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /HideIcons /S" + WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ShowIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /ShowIcons /S" + WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ReinstallCommand" "$\"$INSTDIR\spad-setup.exe$\" /Reinstall /S" + WriteRegDWORD HKLM "Software\Clients\Media\VLC\InstallInfo" "IconsVisible" 0x001 lbl_done: SectionEnd @@ -457,41 +236,18 @@ SectionEnd Section $Name_Section02a SEC02a SectionIn 1 2 3 CreateDirectory "$SMPROGRAMS\VideoLAN" - CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings" - CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \ - "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \ - "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc://quit" - CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \ - "$INSTDIR\vlc.exe" "-I skins --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Qt (default).lnk" \ - "$INSTDIR\vlc.exe" "-I qt --save-config vlc://quit" - CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video" - ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \ - "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \ - "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \ - "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \ - "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \ - "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \ - "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc://quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \ - "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache vlc://quit" + CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \ + "$INSTDIR\vlc.exe" "" + CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player skinned.lnk" \ + "$INSTDIR\vlc.exe" "-Iskins" CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \ "$INSTDIR\Documentation.url" CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \ "$INSTDIR\NEWS.txt" "" CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \ "$INSTDIR\${PRODUCT_GROUP} Website.url" - CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \ - "$INSTDIR\vlc.exe" "" + CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC media player preferences and cache files.lnk" \ + "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache vlc://quit" SectionEnd Section $Name_Section02b SEC02b @@ -500,13 +256,14 @@ Section $Name_Section02b SEC02b "$INSTDIR\vlc.exe" "" SectionEnd -Section /o $Name_Section03 SEC03 - SectionIn 3 +!ifdef INSTALL_MOZILLA +Section $Name_Section03 SEC03 + SectionIn 1 3 SetOutPath "$INSTDIR" !insertmacro OpenUninstallLog - !insertmacro InstallFile mozilla\npvlc.dll - !insertmacro InstallFile mozilla\npvlc.dll.manifest + !insertmacro InstallFile npvlc.dll + !insertmacro InstallFile npvlc.dll.manifest !insertmacro CloseUninstallLog !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}" @@ -515,103 +272,134 @@ Section /o $Name_Section03 SEC03 WriteRegStr HKLM ${Moz} "Product" "VLC media player" WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN" WriteRegStr HKLM ${Moz} "Version" "${VERSION}" - - ; for very old version of mozilla, these lines may be needed - ;Push $R0 - ;Push $R1 - ;Push $R2 - - ;!define Index 'Line${__LINE__}' - ;StrCpy $R1 "0" - - ;"${Index}-Loop:" - - ; ; Check for Key - ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1" - ; StrCmp $R0 "" "${Index}-End" - ; IntOp $R1 $R1 + 1 - ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins" - ; StrCmp $R2 "" "${Index}-Loop" "" - - ; CopyFiles "$INSTDIR\npvlc.dll" "$R2" - ; !ifdef LIBVLC_DLL - ; CopyFiles ${LIBVLC_DLL} "$R2" - ; !endif - ; !ifdef LIBVLC_CONTROL_DLL - ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2" - ; !endif - ; Goto "${Index}-Loop" - - ;"${Index}-End:" - ;!undef Index - SectionEnd +!endif + +!ifdef INSTALL_ACTIVEX +Section $Name_Section04 SEC04 + SectionIn 1 3 -Section /o $Name_Section04 SEC04 - SectionIn 3 SetOutPath "$INSTDIR" !insertmacro OpenUninstallLog - !insertmacro InstallFile activex\axvlc.dll - !insertmacro InstallFile activex\axvlc.dll.manifest + !insertmacro InstallFile axvlc.dll + !insertmacro InstallFile axvlc.dll.manifest !insertmacro CloseUninstallLog RegDLL "$INSTDIR\axvlc.dll" SectionEnd - -SectionGroup /e !$Name_Section06 SEC05 - SectionGroup $Name_SectionGroupAudio - !insertmacro MacroAudioExtensions RegisterExtensionSection - SectionGroupEnd - SectionGroup $Name_SectionGroupVideo - !insertmacro MacroVideoExtensions RegisterExtensionSection - SectionGroupEnd - SectionGroup $Name_SectionGroupOther - !insertmacro MacroOtherExtensions RegisterExtensionSection - SectionGroupEnd -SectionGroupEnd +!endif -Section $Name_Section05 SEC06 +Section $Name_Section05 SEC05 SectionIn 1 2 3 WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \ - '"$INSTDIR\vlc.exe" --started-from-file "cdda://%1"' + '"$INSTDIR\vlc.exe" --started-from-file cdda:///%1' WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \ - '"$INSTDIR\vlc.exe" --started-from-file "dvd://%1"' + '"$INSTDIR\vlc.exe" --started-from-file dvd:///%1' WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" "" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" $Action_OnArrivalDVD WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "Open" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" "" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" $Action_OnArrivalAudioCD WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "Open" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player" + + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoCDMovieOnArrival" "VLCPlayVCDMovieOnArrival" "" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" "Action" $Action_OnArrivalVCDMovie + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" "InvokeProgID" "VLC.VCDMovie" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" "InvokeVerb" "Open" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" "Provider" "VideoLAN VLC media player" + + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlaySuperVideoCDMovieOnArrival" "VLCPlaySVCDMovieOnArrival" "" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" "Action" $Action_OnArrivalSVCDMovie + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" "InvokeProgID" "VLC.SVCDMovie" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" "InvokeVerb" "Open" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" "Provider" "VideoLAN VLC media player" + + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDAudioOnArrival" "VLCPlayDVDAudioOnArrival" "" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" "Action" $Action_OnArrivalDVDAudio + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" "InvokeProgID" "VLC.OPENFolder" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" "InvokeVerb" "Open" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" "Provider" "VideoLAN VLC media player" + + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoFilesOnArrival" "VLCPlayVideoFilesOnArrival" "" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" "Action" $Action_OnArrivalVideoFiles + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" "InvokeProgID" "VLC.OPENFolder" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" "InvokeVerb" "Open" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" "Provider" "VideoLAN VLC media player" + + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayMusicFilesOnArrival" "VLCPlayMusicFilesOnArrival" "" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" "Action" $Action_OnArrivalMusicFiles + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" "InvokeProgID" "VLC.OPENFolder" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" "InvokeVerb" "Open" + WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" "Provider" "VideoLAN VLC media player" + WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie" - WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play" - WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \ - '"$INSTDIR\vlc.exe" --started-from-file "dvd://%1"' + WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Open" + WriteRegStr HKCR "VLC.DVDMovie\shell\Open\command" "" \ + '"$INSTDIR\vlc.exe" --started-from-file dvd:///%1' WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio" - WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play" - WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \ - '"$INSTDIR\vlc.exe" --started-from-file "cdda://%1"' + WriteRegStr HKCR "VLC.CDAudio\shell" "" "Open" + WriteRegStr HKCR "VLC.CDAudio\shell\Open\command" "" \ + '"$INSTDIR\vlc.exe" --started-from-file cdda:///%1' WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + WriteRegStr HKCR "VLC.VCDMovie" "" "VLC VCD Movie" + WriteRegStr HKCR "VLC.VCDMovie\shell" "" "Open" + WriteRegStr HKCR "VLC.VCDMovie\shell\Open\command" "" \ + '"$INSTDIR\vlc.exe" --started-from-file vcd:///%1' + WriteRegStr HKCR "VLC.VCDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + + WriteRegStr HKCR "VLC.SVCDMovie" "" "VLC SVCD Movie" + WriteRegStr HKCR "VLC.SVCDMovie\shell" "" "Open" + WriteRegStr HKCR "VLC.SVCDMovie\shell\Open\command" "" \ + '"$INSTDIR\vlc.exe" --started-from-file vcd:///%1' + WriteRegStr HKCR "VLC.SVCDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + + WriteRegStr HKCR "VLC.OPENFolder" "" "VLC Play content" + WriteRegStr HKCR "VLC.OPENFolder\shell" "" "Open" + WriteRegStr HKCR "VLC.OPENFolder\shell\Open\command" "" \ + '"$INSTDIR\vlc.exe" %1' + WriteRegStr HKCR "VLC.OPENFolder\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + SectionEnd + +SectionGroup /e !$Name_Section06 SEC06 + SectionGroup $Name_SectionGroupAudio + !insertmacro MacroAudioExtensions RegisterExtensionSection + SectionGroupEnd + SectionGroup $Name_SectionGroupVideo + !insertmacro MacroVideoExtensions RegisterExtensionSection + SectionGroupEnd + SectionGroup $Name_SectionGroupOther + !insertmacro MacroOtherExtensions RegisterExtensionSection + !insertmacro MacroSkinExtensions RegisterSkinExtensionSection + SectionGroupEnd +SectionGroupEnd + Section $Name_Section07 SEC07 SectionIn 1 3 !insertmacro MacroAllExtensions AddContextMenu !insertmacro AddContextMenuExt "Directory" SectionEnd -Section $Name_Section08 SEC08 +Section /o $Name_Section08 SEC08 !insertmacro delprefs SectionEnd @@ -620,8 +408,12 @@ SectionEnd !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $Desc_Section01 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} $Desc_Section02a !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} $Desc_Section02b +!ifdef INSTALL_MOZILLA !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $Desc_Section03 +!endif +!ifdef INSTALL_ACTIVEX !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $Desc_Section04 +!endif !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $Desc_Section05 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $Desc_Section06 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} $Desc_Section07 @@ -630,19 +422,156 @@ SectionEnd ;;; Start function Function .onInit + +@HAVE_WIN64_TRUE@ !include "x64.nsh" +@HAVE_WIN64_TRUE@ ${If} ${RunningX64} +@HAVE_WIN64_TRUE@ ${Else} +@HAVE_WIN64_TRUE@ MessageBox MB_OK|MB_ICONSTOP "This version of VLC only runs on 64bits operating systems.$\nYour operating system is 32bits.$\n$\nPlease get the 32 BITS version." +@HAVE_WIN64_TRUE@ Quit +@HAVE_WIN64_TRUE@ ${Endif} + +@HAVE_WIN64_TRUE@ SetRegView 64 +ReadRegStr $INSTDIR HKLM "${PRODUCT_DIR_REGKEY}" "" +StrCmp $INSTDIR "" 0 +1 +StrCpy $INSTDIR "$@PROGRAMFILES@\VideoLAN\VLC" + +UAC_Elevate: + UAC::RunElevated + StrCmp 1223 $0 UAC_ElevationAborted + StrCmp 0 $0 0 UAC_Err + StrCmp 1 $1 0 UAC_Success + Quit + +UAC_Err: + MessageBox mb_iconstop "Unable to elevate, error $0" + Abort + +UAC_ElevationAborted: + MessageBox mb_iconstop "This installer requires admin access, aborting!" + Abort + +UAC_Success: + StrCmp 1 $3 +4 + StrCmp 3 $1 0 UAC_ElevationAborted + MessageBox mb_iconstop "This installer requires admin access, try again" + goto UAC_Elevate !insertmacro MUI_LANGDLL_DISPLAY !include "languages\english.nsh" - StrCmp $LANGUAGE ${LANG_FRENCH} French EndLanguageCmp + StrCmp $LANGUAGE ${LANG_FRENCH} French 0 + StrCmp $LANGUAGE ${LANG_GERMAN} German 0 + StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0 + StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0 + StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0 + StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0 + StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0 + StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0 + StrCmp $LANGUAGE ${LANG_POLISH} Polish 0 + StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0 + StrCmp $LANGUAGE ${LANG_DANISH} Danish 0 + StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0 + StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0 + StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0 +; StrCmp $LANGUAGE ${LANG_BENGALI} Bengali 0 +; StrCmp $LANGUAGE ${LANG_PUNJABI} Punjabi 0 +; StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0 + StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0 + StrCmp $LANGUAGE ${LANG_ESTONIAN} Estonian 0 + StrCmp $LANGUAGE ${LANG_LITHUANIAN} Lithuanian 0 + StrCmp $LANGUAGE ${LANG_BASQUE} Basque 0 + StrCmp $LANGUAGE ${LANG_SERBIAN} Serbian 0 + StrCmp $LANGUAGE ${LANG_RUSSIAN} Russian 0 + StrCmp $LANGUAGE ${LANG_HEBREW} Hebrew 0 + StrCmp $LANGUAGE ${LANG_GALICIAN} Galician 0 + StrCmp $LANGUAGE ${LANG_SWEDISH} Swedish 0 + StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp French: !include "languages\french.nsh" + Goto EndLanguageCmp + German: + !include "languages\german.nsh" + Goto EndLanguageCmp + Italian: + !include "languages\italian.nsh" + Goto EndLanguageCmp + Hungarian: + !include "languages\hungarian.nsh" + Goto EndLanguageCmp + Romanian: + !include "languages\romanian.nsh" + Goto EndLanguageCmp + Catalan: + !include "languages\catalan.nsh" + Goto EndLanguageCmp + Bulgarian: + !include "languages\bulgarian.nsh" + Goto EndLanguageCmp + Slovak: + !include "languages\slovak.nsh" + Goto EndLanguageCmp + Polish: + !include "languages\polish.nsh" + Goto EndLanguageCmp + Dutch: + !include "languages\dutch.nsh" + Goto EndLanguageCmp + Danish: + !include "languages\danish.nsh" + Goto EndLanguageCmp + Schinese: + !include "languages\schinese.nsh" + Goto EndLanguageCmp + Finnish: + !include "languages\finnish.nsh" + Goto EndLanguageCmp + Japanese: + !include "languages\japanese.nsh" + Goto EndLanguageCmp + Bengali: + !include "languages\bengali.nsh" + Goto EndLanguageCmp + Punjabi: + !include "languages\punjabi.nsh" + Goto EndLanguageCmp + Slovenian: + !include "languages\slovenian.nsh" + Goto EndLanguageCmp + Spanish: + !include "languages\spanish.nsh" + Goto EndLanguageCmp + Estonian: + !include "languages\estonian.nsh" + Goto EndLanguageCmp + Lithuanian: + !include "languages\lithuanian.nsh" + Goto EndLanguageCmp + Basque: + !include "languages\basque.nsh" + Goto EndLanguageCmp + Serbian: + !include "languages\serbian.nsh" + Goto EndLanguageCmp + Russian: + !include "languages\Russian.nsh" + Goto EndLanguageCmp + Hebrew: + !include "languages\hebrew.nsh" + Goto EndLanguageCmp + Galician: + !include "languages\galician.nsh" + Goto EndLanguageCmp + Swedish: + !include "languages\swedish.nsh" + Goto EndLanguageCmp + Brazilian: + !include "languages\brazilian_portuguese.nsh" EndLanguageCmp: ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "UninstallString" StrCmp $R0 "" done - MessageBox MB_YESNO|MB_ICONEXCLAMATION $Message_AlreadyInstalled IDNO done + MessageBox MB_YESNO|MB_ICONEXCLAMATION $Message_AlreadyInstalled /SD IDNO IDNO done ;Run the uninstaller ;uninst: @@ -652,6 +581,14 @@ Function .onInit FunctionEnd +Function .OnInstFailed + UAC::Unload +FunctionEnd + +Function .OnInstSuccess + UAC::Unload +FunctionEnd + ;; End function Section -Post WriteUninstaller "$INSTDIR\uninstall.exe" @@ -663,6 +600,8 @@ Section -Post "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "UninstallString" "$INSTDIR\uninstall.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ + "InstallLocation" "$INSTDIR" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "DisplayIcon" "$INSTDIR\vlc.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ @@ -671,6 +610,10 @@ Section -Post "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "Publisher" "${PRODUCT_PUBLISHER}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ + "VersionMajor" "@VERSION_MAJOR@" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ + "VersionMinor" "@VERSION_MINOR@" SectionEnd ;;;;;;;;;;;;;;;;;;;;;;;; @@ -736,11 +679,13 @@ Section "un.$Name_Section91" SEC91 !insertmacro MacroAllExtensions DeleteContextMenu !insertmacro MacroAllExtensions UnRegisterExtensionSection + !insertmacro MacroSkinExtensions UnRegisterExtensionSection !insertmacro DeleteContextMenuExt "Directory" ;remove activex plugin UnRegDLL "$INSTDIR\axvlc.dll" Delete /REBOOTOK "$INSTDIR\axvlc.dll" + Delete /REBOOTOK "$INSTDIR\axvlc.dll.manifest" ;remove mozilla plugin Push $R0 @@ -768,6 +713,7 @@ Section "un.$Name_Section91" SEC91 "${Index}-End:" !undef Index Delete /REBOOTOK "$INSTDIR\npvlc.dll" + Delete /REBOOTOK "$INSTDIR\npvlc.dll.manifest" RMDir "$SMPROGRAMS\VideoLAN" RMDir /r $SMPROGRAMS\VideoLAN @@ -799,8 +745,26 @@ Section "un.$Name_Section91" SEC91 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival + DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoCDMovieOnArrival" "VLCPlayVCDMovieOnArrival" + DeleteRegKey HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival + DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlaySuperVideoCDMovieOnArrival" "VLCPlaySVCDMovieOnArrival" + DeleteRegKey HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival + DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDAudioOnArrival" "VLCPlayDVDAudioOnArrival" + DeleteRegKey HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival + DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoFilesOnArrival" "VLCPlayVideoFilesOnArrival" + DeleteRegKey HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival + DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayMusicFilesOnArrival" "VLCPlayMusicFilesOnArrival" + DeleteRegKey HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival + DeleteRegKey HKLM Software\Clients\Media\VLC + DeleteRegValue HKLM "Software\RegisteredApplications" "VLC" DeleteRegKey HKCR "VLC.MediaFile" + DeleteRegKey HKCR "VLC.DVDMovie" + DeleteRegKey HKCR "VLC.CDAudio" + DeleteRegKey HKCR "VLC.VCDMovie" + DeleteRegKey HKCR "VLC.SVCDMovie" + DeleteRegKey HKCR "VLC.OPENFolder" + DeleteRegKey HKLM \ "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}" @@ -825,19 +789,148 @@ SectionEnd !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} $Desc_Section92 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END -;Function un.onUninstSuccess -; HideWindow -; MessageBox MB_ICONINFORMATION|MB_OK \ -; "$(^Name) was successfully removed from your computer." -;FunctionEnd +Function un.OnUnInstFailed + UAC::Unload +FunctionEnd + +Function un.OnUnInstSuccess + UAC::Unload + Delete "$INSTDIR\UAC.dll" +FunctionEnd Function un.onInit + +UAC_Elevate: + UAC::RunElevated + StrCmp 1223 $0 UAC_ElevationAborted + StrCmp 0 $0 0 UAC_Err + StrCmp 1 $1 0 UAC_Success + Quit + +UAC_Err: + MessageBox mb_iconstop "Unable to elevate, error $0" + Abort + +UAC_ElevationAborted: + MessageBox mb_iconstop "This installer requires admin access, aborting!" + Abort + +UAC_Success: + StrCmp 1 $3 +4 + StrCmp 3 $1 0 UAC_ElevationAborted + MessageBox mb_iconstop "This installer requires admin access, try again" + goto UAC_Elevate + !insertmacro MUI_UNGETLANGUAGE - + !include "languages\english.nsh" - StrCmp $LANGUAGE ${LANG_FRENCH} French EndLanguageCmp + StrCmp $LANGUAGE ${LANG_FRENCH} French 0 + StrCmp $LANGUAGE ${LANG_GERMAN} German 0 + StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0 + StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0 + StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0 + StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0 + StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0 + StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0 + StrCmp $LANGUAGE ${LANG_POLISH} Polish 0 + StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0 + StrCmp $LANGUAGE ${LANG_DANISH} Danish 0 + StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0 + StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0 + StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0 +; StrCmp $LANGUAGE ${LANG_BENGALI} Bengali 0 +; StrCmp $LANGUAGE ${LANG_PUNJABI} Punjabi 0 +; StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0 + StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0 + StrCmp $LANGUAGE ${LANG_ESTONIAN} Estonian 0 + StrCmp $LANGUAGE ${LANG_LITHUANIAN} Lithuanian 0 + StrCmp $LANGUAGE ${LANG_BASQUE} Basque 0 + StrCmp $LANGUAGE ${LANG_SERBIAN} Serbian 0 + StrCmp $LANGUAGE ${LANG_RUSSIAN} Russian 0 + StrCmp $LANGUAGE ${LANG_HEBREW} Hebrew 0 + StrCmp $LANGUAGE ${LANG_GALICIAN} Galician 0 + StrCmp $LANGUAGE ${LANG_SWEDISH} Swedish 0 + StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp French: !include "languages\french.nsh" + Goto EndLanguageCmp + German: + !include "languages\german.nsh" + Goto EndLanguageCmp + Italian: + !include "languages\italian.nsh" + Goto EndLanguageCmp + Hungarian: + !include "languages\hungarian.nsh" + Goto EndLanguageCmp + Romanian: + !include "languages\romanian.nsh" + Goto EndLanguageCmp + Catalan: + !include "languages\catalan.nsh" + Goto EndLanguageCmp + Bulgarian: + !include "languages\bulgarian.nsh" + Goto EndLanguageCmp + Slovak: + !include "languages\slovak.nsh" + Goto EndLanguageCmp + Polish: + !include "languages\polish.nsh" + Goto EndLanguageCmp + Dutch: + !include "languages\dutch.nsh" + Goto EndLanguageCmp + Danish: + !include "languages\danish.nsh" + Goto EndLanguageCmp + Schinese: + !include "languages\schinese.nsh" + Goto EndLanguageCmp + Finnish: + !include "languages\finnish.nsh" + Goto EndLanguageCmp + Japanese: + !include "languages\japanese.nsh" + Goto EndLanguageCmp + Bengali: + !include "languages\bengali.nsh" + Goto EndLanguageCmp + Punjabi: + !include "languages\punjabi.nsh" + Goto EndLanguageCmp + Slovenian: + !include "languages\slovenian.nsh" + Goto EndLanguageCmp + Spanish: + !include "languages\spanish.nsh" + Goto EndLanguageCmp + Estonian: + !include "languages\estonian.nsh" + Goto EndLanguageCmp + Lithuanian: + !include "languages\lithuanian.nsh" + Goto EndLanguageCmp + Basque: + !include "languages\basque.nsh" + Goto EndLanguageCmp + Serbian: + !include "languages\serbian.nsh" + Goto EndLanguageCmp + Russian: + !include "languages\russian.nsh" + Goto EndLanguageCmp + Hebrew: + !include "languages\hebrew.nsh" + Goto EndLanguageCmp + Galician: + !include "languages\galician.nsh" + Goto EndLanguageCmp + Swedish: + !include "languages\swedish.nsh" + Goto EndLanguageCmp + Brazilian: + !include "languages\brazilian_portuguese.nsh" EndLanguageCmp: - + FunctionEnd