- Windows10以降では、「設定」から自作アプリや野良アプリをブラウザとして指定できない
- 任意の実行ファイルを規定のブラウザとして指定する手順を調査した
自作アプリをブラウザとして登録したい
自分は、Vivaldi を愛用しているが、業務システムの中にはブラウザを指定するものがある*1。
自分から能動的に使う場合は、ブラウザを呼び出すショートカットを使えば良いが、メールやチャット等で「このURLを開いてください」と言われると、URL のコピーペーストをしなければならない。これは大変ストレスフルである。
そこで、自作アプリを挿入し、URLを解釈してブラウザを切り替えようと思ったのだけど、作った実行ファイルを規定のブラウザとして登録できなかったので、その手順を調べてみた。
Windows10 以降でプロトコルの規定のアプリとして、自作アプリを紐付けるのどうやるん?
— kWatanabe (@WWatchin) 2023年2月3日
ここの一覧に任意の EXE を表示させたいのだが。誰か助けて。 pic.twitter.com/7utIpRGD4I
検証環境
- Windows 11 64bit 22H2
- 検証用の自作ツール(
C:\Apps\kwatanabe.exe
に保存)
手順
レジストリエディタを多用するため、復元ポイントの作成や、サンドボックス環境での練習を強く推奨する。
アプリの ProgID を登録
まず、レジストリエディタを用いて、ProgID を登録する。以下の構造でキーとデータを作成する。
HKEY_LOCAL_MACHINE
Software
Classes
- 任意の ProgID(今回は
kwatanabe.1
とした)shell
open
command
(規定)
= コマンドライン文字列(今回は"C:\Apps\kwatanabe.exe" "%1"
とした)
- 任意の ProgID(今回は
「規定のアプリ」候補としての情報を登録
引き続き、レジストリエディタを用いて、「規定のアプリ」候補としての情報を登録する。以下の構造でキーとデータを作成する。
HKEY_LOCAL_MACHINE
Software
- アプリ名(今回は
kwatanabe
とした)Capabilities
ApplicationDescription
= アプリの説明文(今回はkwatanabe's app
とした)FileAssociations
(任意)- 「規定のアプリ」の候補としたい拡張子 = ProgID
(今回は省略。具体例としては.txt
=kwatanabe.1
)
- 「規定のアプリ」の候補としたい拡張子 = ProgID
UrlAssociations
(任意)- 「規定のアプリ」の候補としたいスキーム = PorgID
(今回はhttp
=kwatanabe.1
とした)
- 「規定のアプリ」の候補としたいスキーム = PorgID
- アプリ名(今回は
拡張子やスキームは、HKEY_CLASSES_ROOT
配下に登録されているキーから指定する。不足している場合には、HKEY_LOCAL_MACHINE\Software\Classies
配下に追加する*2。
「規定のアプリ」候補として登録
引き続き、レジストリエディタを用いて、アプリを「規定のアプリ」候補として登録する。以下の構造でキーとデータを作成する。
HKEY_LOCAL_MACHINE
Software
RegisteredApplications
- アプリ名 =
HKEY_LOCAL_MACHINE
を起点としてCapabilities
に至るまでのパス(今回はkwatanabe
=Software\kwatanabe\Capabilities
とした)
- アプリ名 =
「設定」アプリで「規定のアプリ」に設定
キャッシュを綺麗にするため、一度 Windows 再起動する。
その後、プロトコル単位での規定のアプリの設定画面*3を辿ると、登録したアプリが一覧に表示される。