我想通过我的应用程序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://...)等其他问题提出了不建议使用的解决方案。
对不起,我的英语不好。