7

在 Windows 8 之前(在 XP/VISTA/WIN7 中),我们都可以轻松地做到这一点,只需对注册表进行少量更改即可完成。

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

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.htm\UserChoice Progid:IE.AssocFile.HTM 哈希:XXXXXXXXXXX

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.html\UserChoice Progid:IE.AssocFile.HTM 哈希:XXXXXXXXXXX

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.xht\UserChoice Progid:IE.AssocFile.XHT 哈希:XXXXXXXXXXX

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.xhtml\UserChoice Progid:IE.AssocFile.XHT 哈希:

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoice Progid:IE.FTP 哈希:XXXXXXXXXXX

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice Progid:IE.HTTP 哈希:XXXXXXXXXXX

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice Progid:IE.HTTPS 哈希:XXXXXXXXXXX

提前谢谢了。

4

3 回答 3

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-eg-default-mail-client-for-mailto-protocol.aspx

谢谢。

于 2013-05-24T11:51:18.507 回答
0

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

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

于 2013-05-23T15:50:53.017 回答
0

我也问过这个问题并设法找到了解决方案,这可能对您有所帮助,因为我在 Windows 8.1 上对此进行了测试并且它有效: 如何使用 c# 在 Windows 7 上设置默认浏览器?

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

于 2014-07-06T16:32:52.687 回答