MSN MessengerがURLを開くブラウザを決定する挙動が、大体つかめた気がするので、手順を書いてみようかと。かなりアクロバットなレジストリの参照の仕方をしているなぁという感想。普通にhttpの関連付けから起動とかで良いじゃん。
MSN MessengerはURLを開く時、以下のような感じでレジストリを参照してました。
HKEY_CLASSES_ROOT\.htm
の標準の値を読む
htmlfile
だった場合
htmlfile
でない場合
HKEY_CURRENT_USER\http
をチェック(普通は無い)HKEY_CLASSES_ROOT\http
をチェック(普通はある)HKEY_CLASSES_ROOT\http
の関連付けに従ってURLを開くというわけで、やることは、
HKEY_CLASSES_ROOT\htm.dummy
などダミーのキーを作るHKEY_CLASSES_ROOT\.htm
の標準の値を上記のキー名にするHKEY_CLASSES_ROOT\http
の関連付けを起動したいブラウザにするということになります。これでMSN Messengerから任意のブラウザを起動することができるはずです。
こんな感じのレジストリファイルを作成し、ダブル・クリックしてやれば良いはず。
REGEDIT4 [HKEY_CLASSES_ROOT\htm.dummy] [HKEY_CLASSES_ROOT\.htm] @="htm.dummy" [HKEY_CLASSES_ROOT\http\shell] @="Moon" [HKEY_CLASSES_ROOT\http\shell\Moon] @="Moon" [HKEY_CLASSES_ROOT\http\shell\Moon\command] @="\"C:\\Program Files\\Moon Browser\\mb.exe\" \"%1\""
責任持たないけど。もちろん実行ファイルのパスなどは環境に合わせて、自分の起動したいブラウザのパスなどにしてやる必要はあります。
以上の作業で、自分の環境では問題なくFirefoxとMoon Browser、Opera、よくわからない自作のJScriptファイルなどどんなものでも起動できる様になりました。
Firefoxの場合は、どうやら設定から標準のブラウザにしてやれば問題なくFirefoxで開かれるようになるのであまり意味は無いですが(手動で関連付けを設定してたりする人には意味はある)、Moon BrowserやDonut RAPTなどで開けないものかと苦労していた方は試してみる価値はあると思います。
間違ってるかもしれないですけどね。
大体この手順で良さそうな感じですね。SleipnirやDonutPとかでも問題なく起動したようです。
補足ですが、普通にこれやると拡張子がhtmなファイルをダブルクリックしても、ブラウザで開けなくなります。まぁ滅多に困ることはないと思いますが念のため。元のような挙動にしたい場合は、自分でガリガリレジストリを編集するか、フォルダオプションなんかで改めて設定する必要があります。
ここでは説明の簡略化のためにそこらへんはすっ飛ばしました。
MSN MessengerからURLをhttpプロトコルの関連付けで開くバイナリ・パッチがMSN Messenger Windows Messenger Part17の277にありました。スバラシイ。