1

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がこれを異なる方法で処理しているのか、誰にも分かりますか?

前もってありがとう、マット

4

2 に答える 2

1

インストール中にChromeが追加する「tel」レジストリキーを削除する必要があります。

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\Google Chrome\Capabilities\UrlAssociations

その後、Win 8 をプッシュしてレジストリ ベースをリロードする必要があります (再起動またはその他の方法)。jabber が TEL:URI のデフォルト アプリになります;)。

于 2013-06-26T13:15:45.573 に答える
0

これは、Windows 8 に適用されると思われるファイル タイプとプロトコルの関連付けモデル (Windows) に関するガイダンスです。試してみませんか?

このコードレビューは、Chrome のプロトコル ハンドラのコードがこのファイルにあることを示唆しています。

于 2012-12-16T20:48:10.480 に答える