このページの本文へ

前へ 1 2 次へ

Windows Info 第306回

現在表示中のウェブページを他のブラウザで開くのをコピペより簡単にする方法

2021年12月19日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

レジストリファイルを使って設定を登録する

 今回紹介したのはレジストリの設定なので、regファイルを作れば作業は簡単になる。リスト1は「google-chrome:」でChromeを起動するプロトコルハンドラー。リスト2は「mozilla-firefox:」でFireFoxを起動するプロトコルハンドラーだ。どちらも64bit版を想定しているのでインストールパスが異なる場合は書き換えの必要がある。

リスト1

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\google-chrome]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\google-chrome\shell]
[HKEY_CLASSES_ROOT\google-chrome\shell\open]
[HKEY_CLASSES_ROOT\google-chrome\shell\open\command]
@="powershell.exe -noprofile -command \"&{$x=('%1' -replace 'google-chrome:','') ; start-process -FilePath 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' -argumentList $x }\""

リスト2

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\mozilla-firefox]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\mozilla-firefox\shell]
[HKEY_CLASSES_ROOT\mozilla-firefox\shell\open]
[HKEY_CLASSES_ROOT\mozilla-firefox\shell\open\command]
@="powershell.exe -noprofile -command \"&{$x=('%1' -replace 'mozilla-firefox:','') ; start-process 'C:\\Program Files\\Mozilla Firefox\\firefox.exe ' -argumentList $x}\""

 どちらも、レジストリの登録形式ファイルなので、これをメモ帳に貼り付け、拡張子を「.reg」にして保存、エクスプローラーでダブルクリックしてレジストリに設定すればよい。複数マシンに設定するならregファイルを作ったほうが簡単だ。

 とは言え、毎回「google-chrome:」「mozilla-firefox:」と入力するのも、これまた面倒。なので、きちんと理解して使うのであれば、3文字程度で他のスキーマなどと衝突しないプロトコルハンドラー名を使うと便利だ。以下のリスト3と4は、それぞれ「chx:」と「ffx:」でchromeとFireFoxを起動するプロトコルハンドラーだ。

リスト3

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\chx]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\chx\shell]
[HKEY_CLASSES_ROOT\chx\shell\open]
[HKEY_CLASSES_ROOT\chx\shell\open\command]
@="powershell.exe -noprofile -command \"&{$x=('%1' -replace 'chx:','') ; start-process -FilePath 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' -argumentList $x }\""

リスト4

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ffx]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ffx\shell]
[HKEY_CLASSES_ROOT\ffx\shell\open]
[HKEY_CLASSES_ROOT\ffx\shell\open\command]
@="powershell.exe -noprofile -command \"&{$x=('%1' -replace 'ffx:','') ; start-process 'C:\\Program Files\\Mozilla Firefox\\firefox.exe ' -argumentList $x}\""

 「microsoft-edge:」は、プロトコルハンドラーではないので、この方法が使えないが、他の名前、たとえば「edgx」のような名前でプロトコルハンドラーを定義し、「C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe」を起動するようにすれば、同じように短いプロトコルハンドラー名で登録が可能だ。リストは示さないが、regファイルの場合には、「\」やダブルクオートがエスケープされるので、ゼロから作るのは面倒。先に前記の手順でレジストリに登録し、それをエクスポートしてregファイルを作るといいだろう。

 実行コマンドを含めてプロトコルハンドラー名を直せば動くはずだが、プロトコルハンドラーには、いくつか使えないキーワードがある。たとえば、EdgeやChromeは、「Edge:」「Chrome:」「about:」を特別扱いしているので、これらをプロトコルハンドラー名には使えない。

 もちろん、すでにHKEY_CLASSES_ROOTにあるキーも使えない。プロトコルハンドラーは、ローカルで定義するものだが、インターネット側ページに同じスキーマを持つリンクが含まれている可能性が常にある。今回のプログラムでは、指定したブラウザ以外は起動できないようになっているが、思わぬ副作用を起こす可能性は否定できない。そのため、偶然で一致しにくい長い名前を使うことを原則として、短いプロトコルハンドラーは相応のリスクがあるという理解で利用していただきたい。

 昔からMicrosoftのやることが気に入らない人は多く、何かにつけ話題になるのはそうそう珍しくない。昔から「困ったときの●●批判」と言われていて、ネタに困ったときには反論してこない相手の批判を書くというのはよくあること。筆者も経験が無いわけではないので大きなことは言えないが、ちょっと後ろ向きではある。とはいえEdgeを調べていたら問題解決のヒントを得ることができた。まさにMicrosoft様々である。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン