WinVista Windows で URL に複数の Web ブラウザを関連付け

拡張子セレクト「ポチエス (.S)」の中の URL 関連付け版「esUrl5」というソフトで実現できそうだったので,試してみた。 Windows XP と違って Windows Vista でプロトコルの関連付けを書き換える方法は情報が少ないようなので,特にそのへんの手順を詳細にメモ。

esUrl5 の設定ファイル (esUrl5.ini) には以下のような内容を記述。

[system]
@param
@menu=mouse
@icon
@name=%G
@mark=0

[.*]
%Common Programs%\Mozilla Firefox\Mozilla Firefox.lnk | Mozilla &Firefox
	>%L
%Programs%\Google Chrome\Google Chrome.lnk | Google &Chrome
	>--enable-user-scripts %L
%Programs%\Internet Explorer.lnk | &Internet Explorer
	>%L
%Programs%\Internet Explorer.lnk | Internet Explorer [In&Private]
	>-private %L
%end

各 Web ブラウザのパスは .exe ファイルを示せばいいんだけど,Program Files 配下にインストールされない Google Chrome のパスがキレイに書けないので,敢えてスタートメニューのショートカットのパスで統一してみた。

URL リンクをクリックしたときに起動するプログラムを自由に設定できるソフトから利用する場合は,そこに esUrl5.exe を設定するだけでいい。 リンクをクリックするとマウスカーソルの位置にポップアップメニューが表示されて,どの Web ブラウザで開くかを選択できる。 LimeChat だとこんな感じ:
[LimeChat でポチエス]

esUrl5 ってものすごく多機能なソフトで,Web ブラウザの選択はその中の一機能に過ぎないので,詳しくはポチエスの Wiki を始めとする各種サイトへどうぞ。

[追記] esUrl5 は HTTPS スキームを処理してくれないもよう。 Web ブラウザの代わりに esUrl5.exe を起動するように設定すると,https:// のリンクをクリックしても開けない状態になってしまうので,要注意。

ここまでで事足りるなら,以下の手順は不要。

リンクのクリックで起動するプログラムの設定ができないソフトなど,あらゆる場面から利用したい場合は,Windows の関連付けの設定を変更する必要がある。 Windows XP なら確かプロトコルの関連付けを自由なプログラムに変更することも GUI で出来たと思うけど,Windows Vista ではレジストリを書き換えるしかなさそう。 レジストリ操作は危険を伴うので要注意。

 関連付けの登録 (Windows Vista 向け)

以下のような内容の登録エントリファイル (esUrl5_add.reg) を用意する。 数ヶ所に登場する「D:\\tools\\esUrl5\\esUrl5.exe」という記述は,実際にインストールしたパスに合わせてすべて書き換えること。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\pochi_s]
@="ポチエス"

[HKEY_LOCAL_MACHINE\SOFTWARE\pochi_s\esUrl5]
@="「ポチエス」URL関連付け専用版"

[HKEY_LOCAL_MACHINE\SOFTWARE\pochi_s\esUrl5\Capabilities]
"ApplicationName"="「ポチエス」URL関連付け専用版"
"ApplicationDescription"="あらかじめ一つのURL内拡張子に複数のプログラムを関連付けしておき、転送されたURLをメニュー選択から好みのプログラムで開くことができます。"

[HKEY_LOCAL_MACHINE\SOFTWARE\pochi_s\esUrl5\Capabilities\URLAssociations]
"ftp"="esUrl5.Url.ftp"
"http"="esUrl5.Url.http"
"https"="esUrl5.Url.https"

[HKEY_LOCAL_MACHINE\SOFTWARE\pochi_s\esUrl5\DefaultIcon]
@="D:\\tools\\esUrl5\\esUrl5.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"esUrl5"="Software\\pochi_s\\esUrl5\\Capabilities"

[HKEY_CLASSES_ROOT\esUrl5.Url.ftp]
@="URL:File Transfer Protocol"
"FriendlyTypeName"="URL:File Transfer Protocol (ポチエス)"
"EditFlags"=dword:00000002
"URL Protocol"=""

[HKEY_CLASSES_ROOT\esUrl5.Url.ftp\shell]

[HKEY_CLASSES_ROOT\esUrl5.Url.ftp\shell\open]

[HKEY_CLASSES_ROOT\esUrl5.Url.ftp\shell\open\command]
@="\"D:\\tools\\esUrl5\\esUrl5.exe\" \"%1\""

[HKEY_CLASSES_ROOT\esUrl5.Url.http]
@="URL:HyperText Transfer Protocol"
"FriendlyTypeName"="URL:HyperText Transfer Protocol (ポチエス)"
"EditFlags"=dword:00000002
"URL Protocol"=""

[HKEY_CLASSES_ROOT\esUrl5.Url.http\shell]

[HKEY_CLASSES_ROOT\esUrl5.Url.http\shell\open]

[HKEY_CLASSES_ROOT\esUrl5.Url.http\shell\open\command]
@="\"D:\\tools\\esUrl5\\esUrl5.exe\" \"%1\""

[HKEY_CLASSES_ROOT\esUrl5.Url.https]
@="URL:HyperText Transfer Protocol with Privacy"
"FriendlyTypeName"="URL:HyperText Transfer Protocol with Privacy (ポチエス)"
"EditFlags"=dword:00000002
"URL Protocol"=""

[HKEY_CLASSES_ROOT\esUrl5.Url.https\shell]

[HKEY_CLASSES_ROOT\esUrl5.Url.https\shell\open]

[HKEY_CLASSES_ROOT\esUrl5.Url.https\shell\open\command]
@="\"D:\\tools\\esUrl5\\esUrl5.exe\" \"%1\""

用意した登録エントリファイルを実行してレジストリに追加したら,スタートメニューかコントロールパネルから「規定のプログラム」を開くとポチエスが一覧に出てくるので,それを規定として設定すれば完了。 これで,FTP / HTTP / HTTPS の関連付けが変わる。
[規定のプログラムに設定]

インターネットショートカット (.url ファイル) の関連付けは Internet Explorer のままだけど,ちゃんと動いてるから問題なし?
[インターネットショートカットでポチエス]

[追記] 前述のとおり esUrl5 は HTTPS スキームを処理してくれないようなので,HTTPS の関連付けは変えないほうがいいかも。

 関連付けの解除 (Windows Vista 向け)

スタートメニューかコントロールパネルから「規定のプログラム」を開き,FTP / HTTP / HTTPS の各プロトコルについて,ポチエス以外のプログラムを規定として設定し直せば OK。
[規定のプログラムの解除]

レジストリにゴミを残したくない場合は,以下の内容の登録エントリファイル (esUrl5_del.reg) を用意して実行すればレジストリから削除できるはずだが,自己責任で。

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\pochi_s]

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"esUrl5"=-

[-HKEY_CLASSES_ROOT\esUrl5.Url.ftp]

[-HKEY_CLASSES_ROOT\esUrl5.Url.http]

[-HKEY_CLASSES_ROOT\esUrl5.Url.https]