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'
23 ; Vista and above detection
24 ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
26 StrCmp $R2 '6' ForVista ToEnd
28 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
33 ;; Function that registers one skin extension for VLC
34 Function RegisterSkinExtension
35 ; back up old value for extension $R0 (eg. ".opt")
36 ReadRegStr $1 HKCR "$R0" ""
38 StrCmp $1 "VLC$R0" "NoBackup"
39 WriteRegStr HKCR "$R0" "VLC.backup" $1
41 WriteRegStr HKCR "$R0" "" "VLC$R0"
42 ReadRegStr $0 HKCR "VLC$R0" ""
43 WriteRegStr HKCR "VLC$R0" "" "VLC skin file ($R0)"
44 WriteRegStr HKCR "VLC$R0\shell" "" "Open"
45 WriteRegStr HKCR "VLC$R0\shell\Open" "" ""
46 WriteRegStr HKCR "VLC$R0\shell\Open\command" "" '"$INSTDIR\vlc.exe" -Iskins --skins2-last "%1"'
47 WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
50 ; Vista and above detection
51 ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
53 StrCmp $R2 '6' ForVista ToEnd
55 WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
60 ;; Function that removes one extension that VLC owns.
61 Function un.RegisterExtension
62 ;start of restore script
63 ReadRegStr $1 HKCR "$R0" ""
64 StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
65 ; Read the old value from Backup
66 ReadRegStr $1 HKCR "$R0" "VLC.backup"
67 StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
68 DeleteRegKey HKCR "$R0"
71 WriteRegStr HKCR "$R0" "" $1
72 DeleteRegValue HKCR "$R0" "VLC.backup"
74 DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
75 DeleteRegKey HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations\VLC$R0" ; for vista
78 !macro RegisterExtensionSection EXT
83 Call RegisterExtension
88 !macro RegisterSkinExtensionSection EXT
93 Call RegisterSkinExtension
98 !macro UnRegisterExtensionSection EXT
101 Call un.RegisterExtension
105 !macro WriteRegStrSupportedTypes EXT
106 WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
109 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
110 ; Extension lists Macros ;
111 ; Those macros calls the previous functions ;
112 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
114 !macro MacroAudioExtensions _action
115 !insertmacro ${_action} ".3ga"
116 !insertmacro ${_action} ".669"
117 !insertmacro ${_action} ".a52"
118 !insertmacro ${_action} ".aac"
119 !insertmacro ${_action} ".ac3"
120 !insertmacro ${_action} ".adt"
121 !insertmacro ${_action} ".adts"
122 !insertmacro ${_action} ".aif"
123 !insertmacro ${_action} ".aifc"
124 !insertmacro ${_action} ".aiff"
125 !insertmacro ${_action} ".au"
126 !insertmacro ${_action} ".amr"
127 !insertmacro ${_action} ".aob"
128 !insertmacro ${_action} ".ape"
129 !insertmacro ${_action} ".caf"
130 !insertmacro ${_action} ".cda"
131 !insertmacro ${_action} ".dts"
132 !insertmacro ${_action} ".flac"
133 !insertmacro ${_action} ".it"
134 !insertmacro ${_action} ".m4a"
135 !insertmacro ${_action} ".m4p"
136 !insertmacro ${_action} ".mid"
137 !insertmacro ${_action} ".mka"
138 !insertmacro ${_action} ".mlp"
139 !insertmacro ${_action} ".mod"
140 !insertmacro ${_action} ".mp1"
141 !insertmacro ${_action} ".mp2"
142 !insertmacro ${_action} ".mp3"
143 !insertmacro ${_action} ".mpc"
144 !insertmacro ${_action} ".mpga"
145 !insertmacro ${_action} ".oga"
146 !insertmacro ${_action} ".oma"
147 !insertmacro ${_action} ".opus"
148 !insertmacro ${_action} ".qcp"
149 !insertmacro ${_action} ".ra"
150 !insertmacro ${_action} ".rmi"
151 !insertmacro ${_action} ".snd"
152 !insertmacro ${_action} ".s3m"
153 !insertmacro ${_action} ".spx"
154 !insertmacro ${_action} ".tta"
155 !insertmacro ${_action} ".voc"
156 !insertmacro ${_action} ".vqf"
157 !insertmacro ${_action} ".w64"
158 !insertmacro ${_action} ".wav"
159 !insertmacro ${_action} ".wma"
160 !insertmacro ${_action} ".wv"
161 !insertmacro ${_action} ".xa"
162 !insertmacro ${_action} ".xm"
165 !macro MacroVideoExtensions _action
166 !insertmacro ${_action} ".3g2"
167 !insertmacro ${_action} ".3gp"
168 !insertmacro ${_action} ".3gp2"
169 !insertmacro ${_action} ".3gpp"
170 !insertmacro ${_action} ".amv"
171 !insertmacro ${_action} ".asf"
172 !insertmacro ${_action} ".avi"
173 !insertmacro ${_action} ".divx"
174 !insertmacro ${_action} ".drc"
175 !insertmacro ${_action} ".dv"
176 !insertmacro ${_action} ".f4v"
177 !insertmacro ${_action} ".flv"
178 !insertmacro ${_action} ".gvi"
179 !insertmacro ${_action} ".gxf"
180 !insertmacro ${_action} ".m1v"
181 !insertmacro ${_action} ".m2t"
182 !insertmacro ${_action} ".m2v"
183 !insertmacro ${_action} ".m2ts"
184 !insertmacro ${_action} ".m4v"
185 !insertmacro ${_action} ".mkv"
186 !insertmacro ${_action} ".mov"
187 !insertmacro ${_action} ".mp2"
188 !insertmacro ${_action} ".mp2v"
189 !insertmacro ${_action} ".mp4"
190 !insertmacro ${_action} ".mp4v"
191 !insertmacro ${_action} ".mpa"
192 !insertmacro ${_action} ".mpe"
193 !insertmacro ${_action} ".mpeg"
194 !insertmacro ${_action} ".mpeg1"
195 !insertmacro ${_action} ".mpeg2"
196 !insertmacro ${_action} ".mpeg4"
197 !insertmacro ${_action} ".mpg"
198 !insertmacro ${_action} ".mpv2"
199 !insertmacro ${_action} ".mts"
200 !insertmacro ${_action} ".mtv"
201 !insertmacro ${_action} ".mxf"
202 !insertmacro ${_action} ".nsv"
203 !insertmacro ${_action} ".nuv"
204 !insertmacro ${_action} ".ogg"
205 !insertmacro ${_action} ".ogm"
206 !insertmacro ${_action} ".ogx"
207 !insertmacro ${_action} ".ogv"
208 !insertmacro ${_action} ".rec"
209 !insertmacro ${_action} ".rm"
210 !insertmacro ${_action} ".rmvb"
211 !insertmacro ${_action} ".tod"
212 !insertmacro ${_action} ".ts"
213 !insertmacro ${_action} ".tts"
214 !insertmacro ${_action} ".vob"
215 !insertmacro ${_action} ".vro"
216 !insertmacro ${_action} ".webm"
217 !insertmacro ${_action} ".wmv"
218 !insertmacro ${_action} ".xesc"
221 !macro MacroOtherExtensions _action
222 !insertmacro ${_action} ".asx"
223 !insertmacro ${_action} ".b4s"
224 !insertmacro ${_action} ".bin"
225 !insertmacro ${_action} ".cue"
226 !insertmacro ${_action} ".ifo"
227 !insertmacro ${_action} ".m3u"
228 !insertmacro ${_action} ".m3u8"
229 !insertmacro ${_action} ".pls"
230 !insertmacro ${_action} ".ram"
231 !insertmacro ${_action} ".sdp"
232 !insertmacro ${_action} ".vlc"
233 !insertmacro ${_action} ".wvx"
234 !insertmacro ${_action} ".xspf"
237 !macro MacroSkinExtensions _action
238 !insertmacro ${_action} ".vlt"
239 !insertmacro ${_action} ".wsz"
242 ; One macro to rule them all
243 !macro MacroAllExtensions _action
244 !insertmacro MacroAudioExtensions ${_action}
245 !insertmacro MacroVideoExtensions ${_action}
246 !insertmacro MacroOtherExtensions ${_action}
249 ; Generic function for adding the context menu for one ext.
250 !macro AddContextMenuExt EXT
251 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith
252 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"'
254 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist
255 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"'
258 !macro AddContextMenu EXT
260 ReadRegStr $R0 HKCR ${EXT} ""
261 !insertmacro AddContextMenuExt $R0
265 !macro DeleteContextMenuExt EXT
266 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
267 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
270 !macro DeleteContextMenu EXT
272 ReadRegStr $R0 HKCR ${EXT} ""
273 !insertmacro DeleteContextMenuExt $R0