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

时间:2013-10-03 15:43:40

标签: c# .net windows browser

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

我正在使用C#开发IDE,我需要尝试启动默认Web浏览器的所有子进程,请将我的IDE视为默认Web浏览器。但我需要这样做,它不会影响系统配置的其余部分。

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

任何人都有任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:2)

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

但总的来说有几种选择。

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

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

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

  4. 我担心这不是一个选项,但是 - 你能够注册一个虚拟协议(比如myhttp://)并假装它的http: )您的IDE将成为它的处理程序。

答案 1 :(得分:0)

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