URLスキームといえば http:// や ftp:// とか、URLの先頭にあるものなんですが、これの定義する方法ずっと調べてたんだけど普通にMSDNにあった。
Registering an Application to a URI Scheme (Internet Explorer)
このドキュメントのミソは
- HKEY_CLASSES_ROOT 直下にスキーム名のキーを作り、"URL Protocols" というキーを作る
- あとは普通の関連づけと一緒
ただ、Windows Mobile 6.5のIEからこれで定義したURL開くと動かなかった。調べてみたら実際はもう一つキーが必要で、HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\URLProtocolsに定義したURLスキームのサブキーを作る必要があった。
Launch parametrized Windows Mobile CAB from browser
総合するとこんな感じ。このレジストリを入れて irc://irc.freenode.net とかをIEで踏むとEbIRCが起動してくる*1。
REGEDIT4 [HKEY_CLASSES_ROOT\irc] @="URL:Internet Relay Chat" "URL Protocol"="" [HKEY_CLASSES_ROOT\irc\Shell] [HKEY_CLASSES_ROOT\irc\Shell\Open] [HKEY_CLASSES_ROOT\irc\Shell\Open\Command] @=""\\Program Files\\EbIRC\\EbIRC.exe" %1" [HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\URLProtocols\irc]
*1:ただ、EbIRC側にそれを受け入れる仕組みがないので起動するだけw