当前位置:首页 > 生活 > 正文

Win10下用程序设置默认浏览器(win10系统设置默认浏览器)

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浏览器