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} ".oma"
146 !insertmacro ${_action} ".oga"
147 !insertmacro ${_action} ".qcp"
148 !insertmacro ${_action} ".ra"
149 !insertmacro ${_action} ".rmi"
150 !insertmacro ${_action} ".snd"
151 !insertmacro ${_action} ".s3m"
152 !insertmacro ${_action} ".spx"
153 !insertmacro ${_action} ".tta"
154 !insertmacro ${_action} ".voc"
155 !insertmacro ${_action} ".vqf"
156 !insertmacro ${_action} ".w64"
157 !insertmacro ${_action} ".wav"
158 !insertmacro ${_action} ".wma"
159 !insertmacro ${_action} ".wv"
160 !insertmacro ${_action} ".xa"
161 !insertmacro ${_action} ".xm"
164 !macro MacroVideoExtensions _action
165 !insertmacro ${_action} ".3g2"
166 !insertmacro ${_action} ".3gp"
167 !insertmacro ${_action} ".3gp2"
168 !insertmacro ${_action} ".3gpp"
169 !insertmacro ${_action} ".amv"
170 !insertmacro ${_action} ".asf"
171 !insertmacro ${_action} ".avi"
172 !insertmacro ${_action} ".divx"
173 !insertmacro ${_action} ".drc"
174 !insertmacro ${_action} ".dv"
175 !insertmacro ${_action} ".f4v"
176 !insertmacro ${_action} ".flv"
177 !insertmacro ${_action} ".gvi"
178 !insertmacro ${_action} ".gxf"
179 !insertmacro ${_action} ".m1v"
180 !insertmacro ${_action} ".m2t"
181 !insertmacro ${_action} ".m2v"
182 !insertmacro ${_action} ".m2ts"
183 !insertmacro ${_action} ".m4v"
184 !insertmacro ${_action} ".mkv"
185 !insertmacro ${_action} ".mov"
186 !insertmacro ${_action} ".mp2"
187 !insertmacro ${_action} ".mp2v"
188 !insertmacro ${_action} ".mp4"
189 !insertmacro ${_action} ".mp4v"
190 !insertmacro ${_action} ".mpa"
191 !insertmacro ${_action} ".mpe"
192 !insertmacro ${_action} ".mpeg"
193 !insertmacro ${_action} ".mpeg1"
194 !insertmacro ${_action} ".mpeg2"
195 !insertmacro ${_action} ".mpeg4"
196 !insertmacro ${_action} ".mpg"
197 !insertmacro ${_action} ".mpv2"
198 !insertmacro ${_action} ".mts"
199 !insertmacro ${_action} ".mtv"
200 !insertmacro ${_action} ".mxf"
201 !insertmacro ${_action} ".nsv"
202 !insertmacro ${_action} ".nuv"
203 !insertmacro ${_action} ".ogg"
204 !insertmacro ${_action} ".ogm"
205 !insertmacro ${_action} ".ogx"
206 !insertmacro ${_action} ".ogv"
207 !insertmacro ${_action} ".rec"
208 !insertmacro ${_action} ".rm"
209 !insertmacro ${_action} ".rmvb"
210 !insertmacro ${_action} ".tod"
211 !insertmacro ${_action} ".ts"
212 !insertmacro ${_action} ".tts"
213 !insertmacro ${_action} ".vob"
214 !insertmacro ${_action} ".vro"
215 !insertmacro ${_action} ".webm"
216 !insertmacro ${_action} ".wmv"
217 !insertmacro ${_action} ".xesc"
220 !macro MacroOtherExtensions _action
221 !insertmacro ${_action} ".asx"
222 !insertmacro ${_action} ".b4s"
223 !insertmacro ${_action} ".bin"
224 !insertmacro ${_action} ".cue"
225 !insertmacro ${_action} ".ifo"
226 !insertmacro ${_action} ".m3u"
227 !insertmacro ${_action} ".m3u8"
228 !insertmacro ${_action} ".pls"
229 !insertmacro ${_action} ".ram"
230 !insertmacro ${_action} ".sdp"
231 !insertmacro ${_action} ".vlc"
232 !insertmacro ${_action} ".wvx"
233 !insertmacro ${_action} ".xspf"
236 !macro MacroSkinExtensions _action
237 !insertmacro ${_action} ".vlt"
238 !insertmacro ${_action} ".wsz"
241 ; One macro to rule them all
242 !macro MacroAllExtensions _action
243 !insertmacro MacroAudioExtensions ${_action}
244 !insertmacro MacroVideoExtensions ${_action}
245 !insertmacro MacroOtherExtensions ${_action}
248 ; Generic function for adding the context menu for one ext.
249 !macro AddContextMenuExt EXT
250 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith
251 WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"'
253 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist
254 WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"'
257 !macro AddContextMenu EXT
259 ReadRegStr $R0 HKCR ${EXT} ""
260 !insertmacro AddContextMenuExt $R0
264 !macro DeleteContextMenuExt EXT
265 DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
266 DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
269 !macro DeleteContextMenu EXT
271 ReadRegStr $R0 HKCR ${EXT} ""
272 !insertmacro DeleteContextMenuExt $R0