; 1. File type associations ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Function that register one extension for VLC
+;; Function that registers one extension for VLC
Function RegisterExtension
; back up old value for extension $R0 (eg. ".opt")
ReadRegStr $1 HKCR "$R0" ""
ToEnd:
FunctionEnd
+;; Function that registers one skin extension for VLC
+Function RegisterSkinExtension
+ ; 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 skin file ($R0)"
+ WriteRegStr HKCR "VLC$R0\shell" "" "Open"
+ WriteRegStr HKCR "VLC$R0\shell\Open" "" ""
+ WriteRegStr HKCR "VLC$R0\shell\Open\command" "" '"$INSTDIR\vlc.exe" -Iskins --skins2-last "%1"'
+ WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
+
+;;; Vista Only part
+ ; Vista and above detection
+ ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
+ StrCpy $R2 $R1 1
+ StrCmp $R2 '6' 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
SectionEnd
!macroend
+!macro RegisterSkinExtensionSection EXT
+ Section /o ${EXT}
+ SectionIn 1 3
+ Push $R0
+ StrCpy $R0 ${EXT}
+ Call RegisterSkinExtension
+ Pop $R0
+ SectionEnd
+!macroend
+
!macro UnRegisterExtensionSection EXT
Push $R0
StrCpy $R0 ${EXT}
!insertmacro ${_action} ".xspf"
!macroend
+!macro MacroSkinExtensions _action
+ !insertmacro ${_action} ".vlt"
+ !insertmacro ${_action} ".wsz"
+!macroend
+
; One macro to rule them all
!macro MacroAllExtensions _action
!insertmacro MacroAudioExtensions ${_action}
SectionGroupEnd
SectionGroup $Name_SectionGroupOther
!insertmacro MacroOtherExtensions RegisterExtensionSection
+ !insertmacro MacroSkinExtensions RegisterSkinExtensionSection
SectionGroupEnd
SectionGroupEnd
!insertmacro MacroAllExtensions DeleteContextMenu
!insertmacro MacroAllExtensions UnRegisterExtensionSection
+ !insertmacro MacroSkinExtensions UnRegisterExtensionSection
!insertmacro DeleteContextMenuExt "Directory"
;remove activex plugin
Brazilian:
!include "languages\brazilian_portuguese.nsh"
EndLanguageCmp:
-
+
FunctionEnd