現状(2019/11)のChromeに関して
バージョン77からprotocol_handlerの設定は利用できなくなったみたいです。
参考:https://support.google.com/chrome/thread/14193532?hl=en
細かい制御はできなくなりましたが、起動時の確認ダイアログを表示しないようにすることはレジストリを編集することで可能になります。
上記参考URLの回答にもありますが、Chromeのホワイトリスト定義レジストリに起動したいアプリを追加することで可能です。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"1"="追加したいURLスキーム://*"
以下、バージョン76以前のChromeの場合
mailtoなどのURLスキームで外部プログラムを起動する際、確認ダイアログにこのURLスキームに対して「起動する」「起動しない」の操作を記憶するチェックボックスが表示されます。
このチェックボックスをチェックした後、やっぱりチェックを外したいと思ってもどこから設定し直せばいいかが分かりません。
ネットで情報を探すと、「AppData\Local\Google\Chrome\User Data\LocalState」のファイルに記述されている、とあるのですが既にこの情報は古くなっているのか設定が見当たりません。
ですので自力で調べてみました。間違いがあれば指摘してください。
ちなみに私が使用しているのはバージョン 58.0.3029.110 (64-bit)です。
OS はWindows10
1.「AppData\Local\Google\Chrome\User Data\Default\Preferences」をエディタで開く
2.対象となるURLスキームで文字列検索をすると、以下のような記述があります。
~"protocol_handler":{"excluded_schemes":{"myapp":true,"otherapp":false}~
"myapp"が対象のURLスキームだとすると、
- 常に起動するにしたい場合は「"myapp":false」
- 常にキャンセルしたい場合は「"myapp":true」
- 再度ダイアログを表示したい場合は"「myapp":true」のパラメータ自体を削除する
3.編集後ファイルを保存し、Chromeを再起動する
これで外部プロトコルリクエストのダイアログ状態を変更することができます
余談
本来ならこの設定はファイル編集ではなくて [コンテンツの設定]-[ハンドラ]-[ハンドラを管理] で設定できるように思えるのですが、登録されているハンドラは表示されていません
何か他の設定があるのだろうか・・・