Hatena::Diary

雑木林とコンピュータのメモ帳 このページをアンテナに追加 RSSフィード

2009年01月25日(日)

Windowsの「既定のブラウザ」にFirefox, Opera, DonutQ, IEなどをトグルで切り換えて変更するVBSスクリプト(http, https, .htm, .html対応版)

「Windowsの「既定のブラウザ」にFirefox, Opera, DonutQ, IEなどをトグルで切り換えるVBSスクリプト」という記事を投稿したのですが、このスクリプトがhttpプロトコルとhttpsプロトコルだけにしか対応していなかったので、今回 .htmファイルと.htmlファイルへの関連付けの対応を行いました。

OperaなどがDDEを使う必要がある注意点がありますが、レジストリなどにキーを追加しただけです。


動作は以前と同じで、VBSスクリプトショートカットクリックする度に、既定のブラウザFirefoxOperaDonutQIEFirefox という順番で切り換わって変更される感じ。Safari, Chrome, Sleipnirなどを使っている場合は、スクリプトなどにご自由に加えて下さい。

尚、よくわからずに操作していますので、自己責任で(ぇ


VBSスクリプト

' ブラウザをトグルで切り換える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
'Windowsの「既定のブラウザ」をワンタッチで切り換えるVBSスクリプト - 雑木林とコンピュータのメモ帳
'http://d.hatena.ne.jp/dolphinkick/20080405/p1
'Windowsの「既定のブラウザ」にFirefox, Opera, DonutQ, IEなどをトグルで切り換えるVBSスクリプト - 雑木林とコンピュータのメモ帳
'http://d.hatena.ne.jp/dolphinkick/20090123/Change_Default_Browser

Option Explicit

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

Dim strRegHttpKey, strRegHttpsKey, strRegMyHtmlfileKey
strRegHttpKey = "HKEY_CLASSES_ROOT\HTTP\"
strRegHttpsKey = "HKEY_CLASSES_ROOT\HTTPS\"
strRegMyHtmlfileKey = "HKEY_CLASSES_ROOT\MyHtmlfile\"

Dim strRegHttpEntry, strRegHttpsEntry, strRegMyHtmlfileEntry
strRegHttpEntry = strRegHttpKey & "shell\"
strRegHttpsEntry = strRegHttpKey & "shell\"
strRegMyHtmlfileEntry = strRegMyHtmlfileKey & "shell\"

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

Select Case nowShell
  Case "Firefox"
    objShell.RegWrite strRegHttpEntry, "DonutQ", "REG_SZ"
    objShell.RegWrite strRegHttpsEntry, "DonutQ", "REG_SZ"
    objShell.RegWrite strRegMyHtmlfileEntry, "DonutQ", "REG_SZ"
  Case "DonutQ"
    objShell.RegWrite strRegHttpEntry, "Opera", "REG_SZ"
    objShell.RegWrite strRegHttpsEntry, "Opera", "REG_SZ"
    objShell.RegWrite strRegMyHtmlfileEntry, "Opera", "REG_SZ"
  Case "Opera"
    objShell.RegWrite strRegHttpEntry, "IE", "REG_SZ"
    objShell.RegWrite strRegHttpsEntry, "IE", "REG_SZ"
    objShell.RegWrite strRegMyHtmlfileEntry, "IE", "REG_SZ"
  Case "IE"
    objShell.RegWrite strRegHttpEntry, "Firefox", "REG_SZ"
    objShell.RegWrite strRegHttpsEntry, "Firefox", "REG_SZ"
    objShell.RegWrite strRegMyHtmlfileEntry, "Firefox", "REG_SZ"
  Case Else
    objShell.RegWrite strRegHttpEntry, "Firefox", "REG_SZ"
    objShell.RegWrite strRegHttpsEntry, "Firefox", "REG_SZ"
    objShell.RegWrite strRegMyHtmlfileEntry, "Firefox", "REG_SZ"
End Select

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

事前にレジストリに登録する内容

前提条件の各ブラウザパスは、以下の通りです。ブラウザインストールした環境に合わせて変更。

レジストリは新しく"MyHtmlfile"というキーを作っています。従来の設定に戻したい場合には

  • HKEY_CLASSES_ROOT\.htm
  • HKEY_CLASSES_ROOT\.html

データを元の値にもどすだけです。

参考までに元の値は以下のようになっているようです。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.html]
@="MyHtmlfile"
"Content Type"="text/html"
"PerceivedType"="text"

[HKEY_CLASSES_ROOT\.htm]
@="MyHtmlfile"
"Content Type"="text/html"
"PerceivedType"="text"

[HKEY_CLASSES_ROOT\MyHtmlfile]
@="My HTML Document"
[HKEY_CLASSES_ROOT\MyHtmlfile\DefaultIcon]
@="C:\\Program Files\\Internet Explorer\\iexplore.exe,1"
[HKEY_CLASSES_ROOT\MyHtmlfile\shell]
@="Firefox"

[HKEY_CLASSES_ROOT\MyHtmlfile\shell\DonutQ\command]
@="\"D:\\Program Files\\DonutQ\\DonutQ.exe\" \"%1\""

[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Firefox\command]
@="\"D:\\Program Files\\Mozilla Firefox\\firefox.exe\" -requestPending -osint -url \"%1\""
[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Firefox\ddeexec]
@="\"%1\",,0,0,,,,"
[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Firefox\ddeexec\Application]
@="Firefox"
[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Firefox\ddeexec\Topic]
@="WWW_OpenURL"

[HKEY_CLASSES_ROOT\MyHtmlfile\shell\IE\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" \"%1\""

[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Opera\command]
@="\"C:\\Program Files\\Opera\\opera.exe\" \"%1\""
[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Opera\ddeexec]
@="\"%1\""
[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Opera\ddeexec\Application]
@="Opera"
[HKEY_CLASSES_ROOT\MyHtmlfile\shell\Opera\ddeexec\Topic]
@="WWW_OpenURL"

[HKEY_CLASSES_ROOT\HTTP\shell\DonutQ\command]
@="\"D:\\Program Files\\DonutQ\\DonutQ.exe\" %1"
[HKEY_CLASSES_ROOT\HTTP\shell\Firefox\command]
@="D:\\PROGRA~1\\MOZILL~1\\FIREFOX.EXE -requestPending -osint -url \"%1\""
[HKEY_CLASSES_ROOT\HTTP\shell\Opera\command]
@="\"D:\\Program Files\\Opera\\Opera.exe\" \"%1\""
[HKEY_CLASSES_ROOT\HTTP\shell\IE\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" \"%1\""

[HKEY_CLASSES_ROOT\HTTPS\shell\DonutQ\command]
@="\"D:\\Program Files\\DonutQ\\DonutQ.exe\" \"%1\""
[HKEY_CLASSES_ROOT\HTTPS\shell\Firefox\command]
@="D:\\PROGRA~1\\MOZILL~1\\FIREFOX.EXE -requestPending -osint -url \"%1\""
[HKEY_CLASSES_ROOT\HTTPS\shell\Opera\command]
@="\"D:\\Program Files\\Opera\\Opera.exe\" \"%1\""
[HKEY_CLASSES_ROOT\HTTPS\shell\IE\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" \"%1\""

以上です。

トラックバック - http://d.hatena.ne.jp/dolphinkick/20090125/Change_Default_Browser_Script