修改所有子进程的默认 Web 浏览器

本文关键字:默认 Web 浏览器 子进程 修改 | 更新日期: 2023-09-27 18:33:58

在Windows上,有没有办法修改当前应用程序域中的默认浏览器,而不是系统范围的默认浏览器?

我正在使用 C# 开发 IDE,我需要尝试启动默认 Web 浏览器的所有子进程都将我的 IDE 视为默认 Web 浏览器。但是我需要以不影响系统配置其余部分的方式执行此操作。

不确定我是否清楚地解释了这个问题...

有人知道如何做到这一点吗?

修改所有子进程的默认 Web 浏览器

实际上没有办法为某个过程制作它。此值存储在注册表中,可以为其他用户进行更改。

但总的来说有几种选择。

  1. 使用特殊用户帐户运行调试对象,该帐户具有默认浏览器的不同注册表值。

  2. 在注册密钥HKEY_CLASSES_ROOT'http'shell'open'command中将 IDE 注册为默认浏览器。如果 IDE 可以确定调用方是否不是调试对象,请调用原始浏览器(不要忘记备份初始值)。

  3. 如果您使用类似主机进程的东西 - 拦截对 RegQueryValue 或其他注册表函数的调用,并劫持调试对象的结果。(如果没有主机进程,请尝试注入拦截器)。或者,您可以拦截 CreateProcess 或 ShellExecute。

  4. 恐怕这不是一种选择,但是 - 您可以注册一个虚拟协议(如 myhttp://)并假装它是 http :)您的 IDE 将是它的处理程序。

你在哪个Windows上?在 Windows 7 和 8 中,您可以在控制面板中找到默认程序设置。只需启动控制面板,然后在右上角的搜索框中键入"默认程序"。