ブラウザのリンク等からローカルアプリ(Windows)を起動するカスタムスキーム

ブラウザからのリンクやコールバックをローカルアプリケーションで受け取る、カスタムスキームの登録方法(Windows)

下記の例では、ブラウザ上で MyApplication:// のリンクを開くと、c:\MyApplication.exe がリンクを引数として起動されるのを説明

レジストリへ MyApplication:// で開くアプリを登録
※アプリケーションからこのレジストリの操作は要UAC
拡張子等に対する起動アプリを登録する \HKEY_CLASSES_ROOT\ へ
下記のツリーを作成し、既定、URL Protocol(valueは空)、実行コマンド を登録

command の %1 へブラウザからの情報が置換され実行

HTML側
下記のようなMyApplication:// で始まるリンクを作成
<html>
<head></head>
<body>

	<a href="MyApplication://MyAppSetToken?token=hogehoge">Callback</a>

</body>
</html>

ブラウザで確認
ブラウザで上記HTMLのリンクを開く(ローカルファイルでも可)とブラウザが対応レジストリをチェックして、下記のような確認が表示される
※ローカルでない場合 file:// の所がホスト名(ドメイン名)となる

アプリケーションがリンクを引数として起動する
※下記は、起動引数(自身含む)を表示させるテストアプリ

実行結果 (2024-03-21現在 Chrome, Firefox で確認)
  • 識別子 MyApplication:// は小文字へと変更される
  • リンク内容全てがアプリケーションへ渡される

コメント