1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; 1. File type associations ;
3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 ;; Function that registers one extension for VLC
6 Function RegisterExtension
7 ; back up old value for extension $R0 (eg. ".opt")
8 ReadRegStr $1 HKCR "$R0" ""
10 StrCmp $1 "VLC$R0" "NoBackup"
11 WriteRegStr HKCR "$R0" "VLC.backup" $1
13 WriteRegStr HKCR "$R0" "" "VLC$R0"
14 ReadRegStr $0 HKCR "VLC$R0" ""
15 WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
16 WriteRegStr HKCR "VLC$R0\shell" "" "Open"
17 WriteRegStr HKCR "VLC$R0\shell\Open" "" $ShellAssociation_Play
18 WriteRegStr HKCR "VLC$R0\shell\Open" "MultiSelectModel" "Player"
19 WriteRegStr HKCR "VLC$R0\shell\Open\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
20 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
22 ${If} ${AtLeastWinVista}
23 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
27 ;; Function that registers one skin extension for VLC
28 Function RegisterSkinExtension
29 ; back up old value for extension $R0 (eg. ".opt")
30 ReadRegStr $1 HKCR "$R0" ""
32 StrCmp $1 "VLC$R0" "NoBackup"
33 WriteRegStr HKCR "$R0" "VLC.backup" $1
35 WriteRegStr HKCR "$R0" "" "VLC$R0"
36 ReadRegStr $0 HKCR "VLC$R0" ""
37 WriteRegStr HKCR "VLC$R0" "" "VLC skin file ($R0)"
38 WriteRegStr HKCR "VLC$R0\shell" "" "Open"
39 WriteRegStr HKCR "VLC$R0\shell\Open" "" ""
40 WriteRegStr HKCR "VLC$R0\shell\Open\command" "" '"$INSTDIR\vlc.exe" -Iskins --skins2-last "%1"'
41 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
43 ${If} ${AtLeastWinVista}
44 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
48 ;; Function that removes one extension that VLC owns.
49 Function un.RegisterExtension
50 ;start of restore script
51 ReadRegStr $1 HKCR "$R0" ""
52 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
53 ; Read the old value from Backup
54 ReadRegStr $1 HKCR "$R0" "VLC.backup"
55 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
56 DeleteRegKey HKCR "$R0"
59 WriteRegStr HKCR "$R0" "" $1
60 DeleteRegValue HKCR "$R0" "VLC.backup"
62 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
63 DeleteRegKey HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations\VLC$R0" ; for vista
66 !macro RegisterExtensionSection TYPE EXT
67 ${MementoSection} ${EXT} SEC_EXT_${TYPE}_${EXT}
71 Call RegisterExtension
76 !macro RegisterSkinExtensionSection TYPE EXT
77 ${MementoUnselectedSection} ${EXT} SEC_EXT_SKIN_${EXT}
81 Call RegisterSkinExtension
86 !macro UnRegisterExtensionSection TYPE EXT
89 Call un.RegisterExtension
93 !macro WriteRegStrSupportedTypes TYPE EXT
94 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
97 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
98 ; Extension lists Macros ;
99 ; Those macros calls the previous functions ;
100 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
102 !macro MacroAudioExtensions _action
103 !insertmacro ${_action} Audio ".3ga"
104 !insertmacro ${_action} Audio ".669"
105 !insertmacro ${_action} Audio ".a52"
106 !insertmacro ${_action} Audio ".aac"
107 !insertmacro ${_action} Audio ".ac3"
108 !insertmacro ${_action} Audio ".adt"
109 !insertmacro ${_action} Audio ".adts"
110 !insertmacro ${_action} Audio ".aif"
111 !insertmacro ${_action} Audio ".aifc"
112 !insertmacro ${_action} Audio ".aiff"
113 !insertmacro ${_action} Audio ".au"
114 !insertmacro ${_action} Audio ".amr"
115 !insertmacro ${_action} Audio ".aob"
116 !insertmacro ${_action} Audio ".ape"
117 !insertmacro ${_action} Audio ".caf"
118 !insertmacro ${_action} Audio ".cda"
119 !insertmacro ${_action} Audio ".dts"
120 !insertmacro ${_action} Audio ".flac"
121 !insertmacro ${_action} Audio ".it"
122 !insertmacro ${_action} Audio ".m4a"
123 !insertmacro ${_action} Audio ".m4p"
124 !insertmacro ${_action} Audio ".mid"
125 !insertmacro ${_action} Audio ".mka"
126 !insertmacro ${_action} Audio ".mlp"
127 !insertmacro ${_action} Audio ".mod"
128 !insertmacro ${_action} Audio ".mp1"
129 !insertmacro ${_action} Audio ".mp2"
130 !insertmacro ${_action} Audio ".mp3"
131 !insertmacro ${_action} Audio ".mpc"
132 !insertmacro ${_action} Audio ".mpga"
133 !insertmacro ${_action} Audio ".oga"
134 !insertmacro ${_action} Audio ".oma"
135 !insertmacro ${_action} Audio ".opus"
136 !insertmacro ${_action} Audio ".qcp"
137 !insertmacro ${_action} Audio ".ra"
138 !insertmacro ${_action} Audio ".rmi"
139 !insertmacro ${_action} Audio ".snd"
140 !insertmacro ${_action} Audio ".s3m"
141 !insertmacro ${_action} Audio ".spx"
142 !insertmacro ${_action} Audio ".tta"
143 !insertmacro ${_action} Audio ".voc"
144 !insertmacro ${_action} Audio ".vqf"
145 !insertmacro ${_action} Audio ".w64"
146 !insertmacro ${_action} Audio ".wav"
147 !insertmacro ${_action} Audio ".wma"
148 !insertmacro ${_action} Audio ".wv"
149 !insertmacro ${_action} Audio ".xa"
150 !insertmacro ${_action} Audio ".xm"
153 !macro MacroVideoExtensions _action
154 !insertmacro ${_action} Video ".3g2"
155 !insertmacro ${_action} Video ".3gp"
156 !insertmacro ${_action} Video ".3gp2"
157 !insertmacro ${_action} Video ".3gpp"
158 !insertmacro ${_action} Video ".amv"
159 !insertmacro ${_action} Video ".asf"
160 !insertmacro ${_action} Video ".avi"
161 !insertmacro ${_action} Video ".bik"
162 !insertmacro ${_action} Video ".divx"
163 !insertmacro ${_action} Video ".drc"
164 !insertmacro ${_action} Video ".dv"
165 !insertmacro ${_action} Video ".f4v"
166 !insertmacro ${_action} Video ".flv"
167 !insertmacro ${_action} Video ".gvi"
168 !insertmacro ${_action} Video ".gxf"
169 !insertmacro ${_action} Video ".m1v"
170 !insertmacro ${_action} Video ".m2t"
171 !insertmacro ${_action} Video ".m2v"
172 !insertmacro ${_action} Video ".m2ts"
173 !insertmacro ${_action} Video ".m4v"
174 !insertmacro ${_action} Video ".mkv"
175 !insertmacro ${_action} Video ".mov"
176 !insertmacro ${_action} Video ".mp2"
177 !insertmacro ${_action} Video ".mp2v"
178 !insertmacro ${_action} Video ".mp4"
179 !insertmacro ${_action} Video ".mp4v"
180 !insertmacro ${_action} Video ".mpa"
181 !insertmacro ${_action} Video ".mpe"
182 !insertmacro ${_action} Video ".mpeg"
183 !insertmacro ${_action} Video ".mpeg1"
184 !insertmacro ${_action} Video ".mpeg2"
185 !insertmacro ${_action} Video ".mpeg4"
186 !insertmacro ${_action} Video ".mpg"
187 !insertmacro ${_action} Video ".mpv2"
188 !insertmacro ${_action} Video ".mts"
189 !insertmacro ${_action} Video ".mtv"
190 !insertmacro ${_action} Video ".mxf"
191 !insertmacro ${_action} Video ".nsv"
192 !insertmacro ${_action} Video ".nuv"
193 !insertmacro ${_action} Video ".ogg"
194 !insertmacro ${_action} Video ".ogm"
195 !insertmacro ${_action} Video ".ogx"
196 !insertmacro ${_action} Video ".ogv"
197 !insertmacro ${_action} Video ".rec"
198 !insertmacro ${_action} Video ".rm"
199 !insertmacro ${_action} Video ".rmvb"
200 !insertmacro ${_action} Video ".rpl"
201 !insertmacro ${_action} Video ".thp"
202 !insertmacro ${_action} Video ".tod"
203 !insertmacro ${_action} Video ".ts"
204 !insertmacro ${_action} Video ".tts"
205 !insertmacro ${_action} Video ".vob"
206 !insertmacro ${_action} Video ".vro"
207 !insertmacro ${_action} Video ".webm"
208 !insertmacro ${_action} Video ".wmv"
209 !insertmacro ${_action} Video ".xesc"
212 !macro MacroOtherExtensions _action
213 !insertmacro ${_action} Other ".asx"
214 !insertmacro ${_action} Other ".b4s"
215 !insertmacro ${_action} Other ".bin"
216 !insertmacro ${_action} Other ".cue"
217 !insertmacro ${_action} Other ".ifo"
218 !insertmacro ${_action} Other ".m3u"
219 !insertmacro ${_action} Other ".m3u8"
220 !insertmacro ${_action} Other ".pls"
221 !insertmacro ${_action} Other ".ram"
222 !insertmacro ${_action} Other ".sdp"
223 !insertmacro ${_action} Other ".vlc"
224 !insertmacro ${_action} Other ".wvx"
225 !insertmacro ${_action} Other ".xspf"
228 !macro MacroSkinExtensions _action
229 !insertmacro ${_action} Skin ".vlt"
230 !insertmacro ${_action} Skin ".wsz"
233 ; One macro to rule them all
234 !macro MacroAllExtensions _action
235 !insertmacro MacroAudioExtensions ${_action}
236 !insertmacro MacroVideoExtensions ${_action}
237 !insertmacro MacroOtherExtensions ${_action}
240 ; Generic function for adding the context menu for one ext.
241 !macro AddContextMenuExt EXT
242 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith
243 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"'
245 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist
246 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"'
249 !macro AddContextMenu TYPE EXT
251 ReadRegStr $R0 HKCR ${EXT} ""
252 !insertmacro AddContextMenuExt $R0
256 !macro DeleteContextMenuExt EXT
257 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
258 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
261 !macro DeleteContextMenu TYPE EXT
263 ReadRegStr $R0 HKCR ${EXT} ""
264 !insertmacro DeleteContextMenuExt $R0