【问题标题】:How to set the default browser to my application?如何为我的应用程序设置默认浏览器?
【发布时间】:2012-10-14 18:38:59
【问题描述】:

我制作了一个程序来处理 http 链接。如何将默认浏览器设置为我的 exe?我只需要更改 http 协议,而不是文件关联。我已经设置了命令行参数处理。我不想使用 .reg 文件,因为它要求用户添加密钥。

【问题讨论】:

    标签: c# wpf http registry default-browser


    【解决方案1】:

    您可以在静默模式 ("/S") 下运行 regedit。

    或者运行cmd脚本:

    reg add HKEY_CLASSES_ROOT\http\shell\open\command /ve /d "path\to\app \"%1\"" /f
    

    (对于已注册的 http 处理程序 - 覆盖 "\shell\open\command" 键中现有的空参数)。

    更新您也可以按照MSDN article 尝试使用默认浏览器 (HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet)。但您也可以处理本地文件。

    【讨论】:

    • 我已经尝试过了,它会显示在注册表编辑器中,但是如果我打开 Internet 快捷方式或运行 http 地址,Firefox 仍然会打开,而不是我的程序。
    • 你应该提到这一点。您是否也尝试过“HKEY_CURRENT_USER\Software\Classes\http\shell\open\command”?这是当前用户的特定键映射到 HCR。
    • 我的两台计算机上的 HKEY_CURRENT_USER\Software\Classes 中都不存在 http 密钥。我已将 HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet 从 firefox.exe 更改为浏览器的路径,但没有发生任何更改。
    【解决方案2】:

    @TomTom 抱歉,我没有足够的代表发表评论。 ;)

    仅仅因为 Firefox 和其他几个浏览器很受欢迎并不意味着它在某种程度上是“特殊的”,因为它可以询问您是否要更改设置。定制应用程序没有理由不能做到这一点。

    @msbg,既然你在那里发表了评论,你可能已经在how do i change default browser using c# or batch file找到了答案

    How to find all the browsers installed on a machine 有另一个答案,指的是http://msdn.microsoft.com/en-us/library/dd203067%28VS.85%29.aspx

    【讨论】:

      【解决方案3】:

      你没有。这不是程序特定的设置,它是系统范围的。

      您可以做的是启动一个特定的 exe(浏览)并将 URL 作为参数提供给它。但总的来说,对不起,这是一个系统级设置(甚至不是用户)iirc。

      【讨论】:

      • 有一个系统范围的设置告诉 Windows 您的处理程序 (exe) 存在,以及 HKCU 中的另一个设置为您的用户设置首选项。
      • 但两者都不是特定于应用程序的。这是有道理的——用户选择了一个网络浏览器。接受选择。
      • 这个是可以的,各大浏览器都可以自己设置为默认。
      • @msbg 不,他们不能。我建议从头到尾阅读句子或文章——让你成为一个更好的人。他们可以将自己设置为默认浏览器系统范围或用户范围,但不适用于特定的应用程序。也许您对英语的理解不够好,无法阅读问题?他特别要求特定于应用程序(当您单击应用程序 X 中的超链接时,使用 Chrome,而不是系统默认值)。
      猜你喜欢
      • 2010-09-08
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 2021-12-30
      • 2013-07-13
      • 2013-09-16
      • 1970-01-01
      • 2013-03-30
      相关资源
      最近更新 更多