如何为Windows 10注册自定义协议?

时间:2019-04-09 11:57:48

标签: windows winapi protocols url-scheme

我想通过我的应用程序myscheme://foo在任何浏览器中处理类似myscheme.exe的查询。

据我了解,解决方案将取决于所用操作系统的版本。对于旧的操作系统(直到Windows 7),仅将记录保存在注册表中就足够了:

HKEY_CLASSES_ROOT
  myscheme
  (Default) = "URL:Myscheme Protocol"
  URL Protocol = ""
  DefaultIcon
     (Default) = "myscheme.exe,1"
  shell
     open
        command
           (Default) = "C:\Program Files\Myscheme\myscheme.exe" "%1"

不幸的是,Registering an Application to a URI Scheme声明了不赞成的方式。而且我不应该再使用此API。页面上的推荐版本为microsoft-edge(其中不包含有关信息)!

因此,我开始研究windows 8。我碰到了File type and URI associations model,它说在Windows 8中,应用程序不再能够以编程方式将自己设置为文件类型或URI的默认处理程序。据我了解,新架构使用通知系统,用户可以通过特殊提示控制默认应用程序。但是Default Programs说,它将不再对Windows 10有效(探索参考是DEAD!)。

那么,如何正确处理Windows 10中的自定义协议?不幸的是,Windows仅有糟糕的文档。那不同版本的OS呢?我应该对不同的版本使用不同的技术吗?

P.S。请不要将此问题标记为重复。 How do I register a custom URL protocol in Windows?How do I create my own URL protocol? (e.g. so://...)等其他问题提出了不建议使用的解决方案。

对不起,我的英语不好。

0 个答案:

没有答案