"Mihai Ciumeică" <cmihai@xxxxxx> wrote in message
news:OvoR5W0nIHA.3804@xxxxxx
Quote:
> Greetings, everyone. I apologize in advance if the question is off-topic
> in here, but the only newsgroup here specifically about Windows Vista
> registry is in German. So, here goes.
>
> I'm developing an application that must at one point launch a user-given
> file. So I open the registry, look under HKCR\{name of file type}\shell,
> get the name of the default verb ('Play' for video files etc.), then look
> up the appropriate handler (the program executable) in the verb's subkey,
> check if I can launch the handler and then do so. Later I might, with the
> user's permission, change it to another program, or add my own verb, or
> whatever.
>
> The problem is, under Vista, these verbs don't work. They don't even show
> up in the context menu. For example, when I right-click a video file, the
> default action is 'Open', which launches my VLC media player. The default
> action in HKCR\avifile\shell is 'Play', and the handler under
> HKCR\avifile\shell\play\command is wmplayer.exe. I'm guessing the fact
> that the 'command' key has a value called 'LegacyDisable' has something to
> do with it.
>
> So my question is, where exactly in the registry does ShellExecute look
> for the default verb and its handler?
>
> Thank you for your time.
When you right-click a .avi file it first looks at the default key at
HKEY_CLASSES_ROOT\.avi
to determine where to subsequently jump to ie
HKEY_CLASSES_ROOT\{value of default key}\shell
In your case you would appear to have associated .avi files with VLC Media
Player, so you probably have a VLC entry there. Explore what values you have
under that key, and it will perhaps become apparent what's happening.
--
Jon