I was looking at some forum signatures recently and noticed that they had a URL link to add a persons contact into Windows Live Messenger. Being curious, I has a look at the URL and noticed that there was a custom URL protocol being used - msnim:[email protected]

Now, how would I know to do that and what other protocols are available I wonder. Obviously there's http:, https:, mailto: and more, but how would I see a full list of protocols my computer understands? For instance how does the ms-help: protocol get added when you install Visual Studio? etc.

A little bit of Google time and I run across CFDan's blog entry about creating a new protocol handler. As it turns out adding a custom protocol handler is really just a matter of creating a handful of entries in the windows registry with some specific keys.

So I could then search the registry for these keys to find out what custom protocol handlers are loaded on my machine. However as it turns out that wouldn't be the complete list. For example you won't find the about: handler (for about:blank) or the one for adding MSN Messenger contacts. For that you'd need to look in HKCR\PROTOCOLS\Handler

I grabbed a freeware program called RegSeeker and did a search for the custom URL protocols (search for "URL Protocol") on my machine:

63 Entries! Wow! I never knew. Here's a few of the interesting ones:

callto: Calls a person using Skype
conf: Calls a person using MS Office Communicator
feed: Adds a feed to IE/Outlook 2007
firefoxurl: Opens up firefox for the specific url
skype: opens a uri in Skype
msnim: interact with Live Messenger e.g. add?contact=, etc