Windows 8 で "tel" プロトコルを登録するアプリケーションを作成しているので、[スタート] > [ファイル名を指定して実行] を開くと、tel:1234 と入力して Enter キーを押すと、アプリケーションが起動し、1234 に電話をかけます。これは、XP、Win7 で正常に動作します。そしてWin8。ただし、Win8 では、Google Chrome をインストールすると、tel プロトコルの処理が「引き継がれる」ため、tel:1234 を再度実行すると、アプリケーションの代わりに Chrome が起動されることがわかりました。Chrome は、Win7 または XP で tel プロトコルを引き継ぎません。問題が何であるかを理解したいと思います。
現在、私のアプリケーションは、MSDNの URI スキームへのアプリケーションの登録で説明されているように、次のレジストリ エントリを追加して tel プロトコルを登録します。
HKEY_CLASSES_ROOT\tel
@="URL:My Tel Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\tel\DefaultIcon]
@="C:\\MyTelProtocol.exe"
[HKEY_CLASSES_ROOT\tel\shell]
[HKEY_CLASSES_ROOT\tel\shell\open]
[HKEY_CLASSES_ROOT\tel\shell\open\command]
@="\"C:\\MyTelProtocol.exe\" -URI %1"
Google Chrome が自分のレジストリ データを上書きしないことがわかりました。代わりに、プロトコル ハンドラーを別の方法で登録しているように見えますが、同じ方法がわかりません。なぜWindows 8がこれを異なる方法で処理しているのか、誰にも分かりますか?
前もってありがとう、マット