我正在编写一个在 Windows 8 上注册“tel”协议的应用程序,因此当我打开“开始”>“运行”时,输入 tel:1234 并按 Enter 我的应用程序启动并拨打电话到 1234。这在 XP、Win7 上成功运行和Win8。但是,在 Win8 上,我发现当我安装 Google Chrome 时,它会“接管”对 tel 协议的处理,所以当我再次运行 tel:1234 时,Chrome 会启动,而不是我的应用程序。Chrome 不会接管 Win7 或 XP 中的 tel 协议。我想了解问题所在。
目前,我的应用程序通过添加以下注册表项来注册 tel 协议,如将应用程序注册到MSDN 上的 URI 方案中所述:
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 会以不同的方式处理这个问题吗?
在此先感谢,马特