Windowsの「既定のブラウザ」をワンタッチで切り換えるVBSスクリプト

※ 2009/01/23追記:スクリプトを改善した記事を投稿しました。「Windowsの「既定のブラウザ」にFirefox, Opera, DonutQ, IEなどをトグルで切り換えるVBSスクリプト」


[観] IE が標準のブラウザ(通常使用するブラウザ)に戻らない
http://watcher.moe-nifty.com/memo/2006/10/ie__2cb2.html
を拝見すると

などでブラウザを切り換えられるようですが、そのためだけにソフトをインストールしてレジストリを汚したり、メニューをたどるのはめんどうなので、VBSスクリプトレジストリ HKEY_CLASSES_ROOT\http\shell を直接編集します。

トグルでこのスクリプトを実行するたびに交互にFirefoxOperaを切り換えます。三択以上の他のブラウザ(DonutQなど)とも切り換えたい場合は(ry

あらかじめ、Windowsのフォルダオプションの「ファイルの種類」の「URL: HyperText 転送プロトコル (HTTP)」の「アクション」にFirefoxOperaを登録しておく必要があります。
( 4/6追記:HTTPとHTTPSレジストリFirefox, Opera, DonutQのキーを登録するファイルを追記しました。)

  • あらかじめ登録しなくても、すべてVBSスクリプトでもできるのですが、どうせ右クリックのコンテキストメニューFirefox, Operaを表示させるために登録するので。
  • HKEY_CLASSES_ROOT\http\shell のデフォルトの値の open を変更せずにバックアップしておく意味で。不具合があれば HKEY_CLASSES_ROOT\http\shell の値を open にもどせばおk
' ブラウザをトグルで切り換えるVBSスクリプト
' ※参考にさせて頂いたページ
' [観] IE が標準のブラウザ(通常使用するブラウザ)に戻らない
' http://watcher.moe-nifty.com/memo/2006/10/ie__2cb2.html
' [観] IE が標準のブラウザ(通常使用するブラウザ)に戻らない ― sleipnir から IE に戻す場合
' http://watcher.moe-nifty.com/memo/2007/07/ie_sleipnir_ie_1528.html

Option Explicit

Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")

Dim strRegHttpKey, strRegHttpsKey, strRegHttpEntry, strRegHttpsEntry
strRegHttpKey = "HKEY_CLASSES_ROOT\HTTP\"
strRegHttpsKey = "HKEY_CLASSES_ROOT\HTTPS\"
strRegHttpEntry = strRegHttpKey & "shell\"
strRegHttpsEntry = strRegHttpKey & "shell\"

Dim nowShell
nowShell = objShell.RegRead(strRegHttpEntry)
WScript.Echo "現在のHTTPのシェルは " & nowShell & " です。"

If nowShell="Firefox" Then
  objShell.RegWrite strRegHttpEntry, "Opera", "REG_SZ"
  objShell.RegWrite strRegHttpsEntry, "Opera", "REG_SZ"
Else
  objShell.RegWrite strRegHttpEntry, "Firefox", "REG_SZ"
  objShell.RegWrite strRegHttpsEntry, "Firefox", "REG_SZ"
End If

nowShell = objShell.RegRead(strRegHttpEntry)
WScript.Echo "HTTPのシェルを " & nowShell & " に変更しました。"

VBSはこのスクリプトを書くために調べた初心者です><

4/6追記 フォルダオプションのレジストリOpera, Fierfox, DonutQを登録するファイル

「フォルダオプション」からHTTPやHTTPSにひとつひとつOpera, Firefox, DonutQを登録するのは面倒ですよね。
レジストリファイルを作りました。動作確認はしていないので、自己責任で(ぇ
あとファイルのパス名も自分のPCにあわせて書き換えて下さい。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\HTTP\shell\Donut]
@="Donut"
[HKEY_CLASSES_ROOT\HTTP\shell\Donut\command]
@="\"D:\\Program Files\\DonutL32\\Donut.exe\" /dde"
[HKEY_CLASSES_ROOT\HTTP\shell\Donut\ddeexec]
@="[open(\"%1\")]"
[HKEY_CLASSES_ROOT\HTTP\shell\Donut\ddeexec\application]
@="Donut"
[HKEY_CLASSES_ROOT\HTTP\shell\Donut\ddeexec\topic]
@="system"

[HKEY_CLASSES_ROOT\HTTP\shell\Firefox]
[HKEY_CLASSES_ROOT\HTTP\shell\Firefox\command]
@="C:\\PROGRA~1\\MOZILL~1\\FIREFOX.EXE -requestPending -osint -url \"%1\""

[HKEY_CLASSES_ROOT\HTTP\shell\Opera]
[HKEY_CLASSES_ROOT\HTTP\shell\Opera\command]
@="\"C:\\Program Files\\Opera\\Opera.exe\" %1"


[HKEY_CLASSES_ROOT\HTTPS\shell\Donut]
@="Donut"
[HKEY_CLASSES_ROOT\HTTPS\shell\Donut\command]
@="\"D:\\Program Files\\DonutL32\\Donut.exe\" /dde"
[HKEY_CLASSES_ROOT\HTTPS\shell\Donut\ddeexec]
@="[open(\"%1\")]"
[HKEY_CLASSES_ROOT\HTTPS\shell\Donut\ddeexec\application]
@="Donut"
[HKEY_CLASSES_ROOT\HTTPS\shell\Donut\ddeexec\topic]
@="system"

[HKEY_CLASSES_ROOT\HTTPS\shell\Firefox]
[HKEY_CLASSES_ROOT\HTTPS\shell\Firefox\command]
@="C:\\PROGRA~1\\MOZILL~1\\FIREFOX.EXE -requestPending -osint -url \"%1\""

[HKEY_CLASSES_ROOT\HTTPS\shell\Opera]
[HKEY_CLASSES_ROOT\HTTPS\shell\Opera\command]
@="\"C:\\Program Files\\Opera\\Opera.exe\" %1"