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://www.kuojiu.com/)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3933150@qq.com 举报,一经查实,本站将立刻删除。