kWatanabe 記事一覧へ

kWatanabe の 技術帖

某企業でOSや仮想化の研究をやっているインフラ系エンジニア。オンプレとクラウドのコラボレーションなど、興味ある技術を綴る。

Windows11で自作アプリをブラウザとして登録する

  • Windows10以降では、「設定」から自作アプリや野良アプリをブラウザとして指定できない
  • 任意の実行ファイルを規定のブラウザとして指定する手順を調査した

自作アプリをブラウザとして登録したい

 自分は、Vivaldi を愛用しているが、業務システムの中にはブラウザを指定するものがある*1

 自分から能動的に使う場合は、ブラウザを呼び出すショートカットを使えば良いが、メールやチャット等で「このURLを開いてください」と言われると、URL のコピーペーストをしなければならない。これは大変ストレスフルである。

 そこで、自作アプリを挿入し、URLを解釈してブラウザを切り替えようと思ったのだけど、作った実行ファイルを規定のブラウザとして登録できなかったので、その手順を調べてみた。

検証環境

  • Windows 11 64bit 22H2
  • 検証用の自作ツール( C:\Apps\kwatanabe.exe に保存)

手順

 レジストリエディタを多用するため、復元ポイントの作成や、サンドボックス環境での練習を強く推奨する。

アプリの ProgID を登録

 まず、レジストリエディタを用いて、ProgID を登録する。以下の構造でキーとデータを作成する。

  • HKEY_LOCAL_MACHINE
    • Software
      • Classes
        • 任意の ProgID(今回は kwatanabe.1 とした)
          • shell
            • open
              • command

「規定のアプリ」候補としての情報を登録

 引き続き、レジストリエディタを用いて、「規定のアプリ」候補としての情報を登録する。以下の構造でキーとデータを作成する。

  • HKEY_LOCAL_MACHINE
    • Software
      • アプリ名(今回は kwatanabe とした)
        • Capabilities
          • ApplicationDescription = アプリの説明文(今回は kwatanabe's app とした)
          • FileAssociations(任意)
            • 「規定のアプリ」の候補としたい拡張子 = ProgID
              (今回は省略。具体例としては .txt = kwatanabe.1
          • UrlAssociations(任意)
            • 「規定のアプリ」の候補としたいスキーム = PorgID
              (今回は http = kwatanabe.1 とした)

 拡張子やスキームは、HKEY_CLASSES_ROOT 配下に登録されているキーから指定する。不足している場合には、HKEY_LOCAL_MACHINE\Software\Classies 配下に追加する*2

「規定のアプリ」候補として登録

 引き続き、レジストリエディタを用いて、アプリを「規定のアプリ」候補として登録する。以下の構造でキーとデータを作成する。

  • HKEY_LOCAL_MACHINE
    • Software
      • RegisteredApplications
        • アプリ名 = HKEY_LOCAL_MACHINE を起点として Capabilities に至るまでのパス(今回は kwatanabe = Software\kwatanabe\Capabilities とした)

「設定」アプリで「規定のアプリ」に設定

 キャッシュを綺麗にするため、一度 Windows 再起動する。

 その後、プロトコル単位での規定のアプリの設定画面*3を辿ると、登録したアプリが一覧に表示される。

規定のアプリの一覧に登録された自作アプリ

まとめ

  • Windows 10 以降で、規定のブラウザに任意のアプリを登録する手順を整理した
  • UrlAssociationsFileAssociations の設定により、ブラウザ以外のプロトコルやファイルにも対応できるため、応用範囲は広そう

*1:自分の所属する組織では、流石に IE 指定は無くなった。

*2:HKEY_CLASSES_ROOTは、マシン全体とユーザ固有の設定が自動的に集約されるキーのため、ここにキーを直接作成しない方がよい。

*3:Windows11の場合では「設定」→「アプリ」→「規定のアプリ」→「リンクの種類で規定値を設定する」→ UrlAssociations で指定したプロトコル と辿る。