如何使用C#在Windows 8中设置默认浏览器?

时间:2013-05-23 07:08:19

标签: c# browser windows-8 default

我们都可以轻松地在Windows 8之前(在XP / VISTA / WIN7中)执行此操作,只需在注册表中进行少量更改即可完成。

使用Windows 8并不是那么容易(我还没弄清楚如何)。 Windows 8也没有下面提到的更改注册表设置,但除此之外,它还为每台计算机存储一个唯一的哈希。任何机构都可以帮我为每台计算机创建此哈希值,或者使用Microsoft提供的某些API来设置默认浏览器('SetAppAsDefaultAll'不起作用)。以下是注册表项。

  

计算机\ HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \ CurrentVersion \ Explorer中\ FileExts.htm \ UserChoice   Progid:IE.AssocFile.HTM哈希:XXXXXXXXXXX

     

计算机\ HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \ CurrentVersion \ Explorer中\ FileExts.html \ UserChoice   Progid:IE.AssocFile.HTM哈希:XXXXXXXXXXX

     

计算机\ HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \ CurrentVersion \ Explorer中\ FileExts.xht \ UserChoice   Progid:IE.AssocFile.XHT哈希:XXXXXXXXXXX

     

计算机\ HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \ CurrentVersion \ Explorer中\ FileExts.xhtml \ UserChoice   Progid:IE.AssocFile.XHT哈希:

     

计算机\ HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \壳牌\协会\ UrlAssociations \ FTP \ UserChoice   Progid:IE.FTP哈希:XXXXXXXXXXX

     

计算机\ HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \壳牌\协会\ UrlAssociations \ HTTP \ UserChoice   Progid:IE.HTTP哈希:XXXXXXXXXXX

     

计算机\ HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \壳牌\协会\ UrlAssociations \ HTTPS \ UserChoice   Progid:IE.HTTPS哈希:XXXXXXXXXXX

非常感谢提前。

3 个答案:

答案 0 :(得分:5)

对于所有等待回答这个问题的人。

在这里,看起来这样做的方法之一是通过Win 8提供的DISM.exe。您的用户应该是该机器的管理员。

使用C#代码,您应该能够使用特定参数运行此DISM.exe。

以下博客有详细信息。

http://blogs.technet.com/b/mrmlcgn/archive/2013/02/26/windows-8-associate-a-file-type-or-protocol-with-a-specific-app-using-a-gpo-e-g-default-mail-client-for-mailto-protocol.aspx

感谢。

答案 1 :(得分:0)

我认为原因是用户而不是您的软件可以控制此设置。

然而,您应该能够触发“您的计算机具有用于Web浏览的新应用程序”弹出窗口,以便用户可以根据需要轻松选择您的程序。

答案 2 :(得分:0)

我也问了这个问题,并设法找到了解决方案,这可能对你有所帮助,因为我在Windows 8.1上进行了测试并且它有效: How to set the default browser on Windows 7 using c#?

这实际上适用于您希望将任何程序作为其协议和文件扩展名的默认程序的情况。