Win10下用程序设置默认浏览器【띺띺】

小酒 56 0

Windows 10下的默认浏览器设置,一般是通过控制面板来设置,且默认成Windows自己的IE, EDGE,而市面上那么多浏览器,不能象以前一样直接写个注册表就成为系统默认浏览器了,一方面是微软想保证系统安全,另一方面是不是在利用自己的平台优势让用户用自家的浏览器?而市面上那么多浏览器如FireFox, Safari,Chrome,还有众多的国内浏览器,怎么让自己成为系统的默认浏览器呢?

其实像FireFox,Chrome都是开源的,应该都涉及设置默认浏览器的代码,有兴趣的可以去看看。这里科普一下微软在Windows 10下设置默认浏览器的规则,核心就是处理Windows文件关联对应的UserChoice注册表键,不过微软用了点算法,必须正确才能生效。

这个算法包含5个核心元素:

  • 文件扩展名,如".txt"
  • SID,即Windows系统当前用户的SID(类似"S-1-5-21-463486358-3398762107-1964875780-1001")
  • ProgID,是文件关联所对应的程序识别ID,如"txtfile"
  • 注册时间,按100纳秒计,精确到设置时的分钟数
  • 一个神秘字符串,到当前Windows11为止一直是"User Choice set via Windows User Experience {D18B6DD5-6124-4341-9318-804003BAFA0B}"

只要在UserChoice下建一个名为Hash的值,并把上面核心元素按如下算法计算出一个字符串值写入(无此值则设置不生效):

hash = Base64(MicrosoftHash(MD5(toLower(extension, sid, progid, regdate, experience))))

下面看一下正常设置的例子:

Windows对.htm的文件默认关联为edge浏览器

版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(http://kuojiu.com/)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3933150@qq.com 举报,一经查实,本站将立刻删除。

抱歉,评论功能暂时关闭!