【问题标题】:Change Standard Browser on Windows 7 programmatically以编程方式更改 Windows 7 上的标准浏览器
【发布时间】:2013-02-05 08:09:14
【问题描述】:

首先我需要设置正确的注册表项,然后才能继续使用代码 sn-p 更改我的注册表项。

我已经尝试了我在互联网上找到的所有内容,这就是我现在在这里发布的原因。

MSDN 上引用的所有注册表项都不起作用。 更改这些也不起作用:

HKEY_CLASSES_ROOT\http\shell\open\command

HKEY_CLASSES_ROOT\.htm

HKEY_CLASSES_ROOT\.html

HKEY_CLASSES_ROOT\http\shell\open\command

HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application

HKEY_CLASSES_ROOT\ftp\shell\open\command

HKEY_CLASSES_ROOT\ftp\shell\open\ddeexec\Application

HKEY_CLASSES_ROOT\gopher\shell\open\command

HKEY_CLASSES_ROOT\gopher\shell\open\ddeexec\Application

HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet

我的注册表不应该知道关于我的 Mozilla 的任何信息,因为我在每个条目中都输入了我自己的编码浏览器。

不知道怎么办……

在获得正确的条目后,我会使用类似的代码 sn-p 来添加和更改条目:

        RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\My Registry Key", true);

        myKey.SetValue("My String Value", "Test Value", RegistryValueKind.String);

        string myValue = (string)myKey.GetValue("My String Value");

【问题讨论】:

  • '行不通'?那么,如何?你把它们改成了……改成什么?使用什么代码?现在你已经改变了它们会发生什么
  • 提示:将@符号放在字符串文字前面可以让您不使用转义字符。这有什么关系?不是;)
  • 我将其更改为我的 Browser.exe 并从所有这些条目中删除了 Firefox。 Firefox 仍然作为默认浏览器启动。但是他每次都问我是否要他作为默认浏览器,因为他没有设置....是的,我知道@。这只是注册表中工作的一些示例代码。 @Arran 请阅读我的整篇文章...

标签: c# windows windows-7 registry


【解决方案1】:

这有点晚了,也许为时已晚,但其他人可能会从我的回答中受益。 上面代码中更改的设置符合 Windows XP 而不是 Windows Vista 或 7。 要在 Win Vista 或 7 中设置默认浏览器,请使用 CURRENT_USER 注册表项。 干杯!

【讨论】:

    【解决方案2】:

    您可以使用一个 sysinternals 工具(我忘记了名称),它需要一个进程并记录所有 api 和注册表活动,然后看看 Google-Chrome 是如何做到的。
    或者您可以直接查看 chromium 源代码。

    或者你可能很懒,只使用谷歌,它会让你找到这个搜索结果:
    how do i change default browser using c# or batch file

    【讨论】:

    • 这篇文章无论如何都没有帮助。如您所见,stackoverflow 条目未标记为已回答。也许我会做这项工作并查看铬代码,这比stackoverflow帖子更好的提示^^
    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多