レジストリファイルを使って設定を登録する
今回紹介したのはレジストリの設定なので、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様々である。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ











