【问题标题】:How to intercept Windows' "open URL insystem default browser" functionality如何拦截 Windows 的“在系统默认浏览器中打开 URL”功能
【发布时间】:2010-09-24 03:33:44
【问题描述】:

您好,我需要知道 Windows 在何处/如何存储传递在非浏览器程序(即 Thunderbird)中单击的 URL 并在系统默认浏览器中启动它的命令。

我需要这些信息来编写一个脚本,该脚本允许我在安全的沙盒虚拟机中运行浏览器,但仍保留从非浏览器程序(即我的主机操作系统上的电子邮件客户端)自动打开超链接的功能在我的虚拟机客户操作系统(xp)中选择的浏览器中。

有人知道吗?如果重要的话,我正在运行 Windows Server 2008 R2。但我假设从 XP 开始的大多数 Windows 版本都采用相同的方式。

谢谢

编辑:我找到了this MS kb article

HKEY_CLASSES_ROOT\http\shell\open\command HKEY_CLASSES_ROOT\http\shell\open\ddeexec

我将这些键更改为指向我的脚本,但我的主机操作系统上的 Firefox 仍然启动,但随后抱怨它不再是默认浏览器。

因此,除了这些之外,它还必须回退到其他注册表项。

【问题讨论】:

    标签: windows browser vmware sandbox


    【解决方案1】:

    要在默认浏览器中打开 URL,程序只需调用

    ShellExecute(0, NULL, "http://...", NULL, NULL, 0)
    

    【讨论】:

    • 我需要从任何非浏览器程序中拦截操作系统对该命令的执行,以便运行我的脚本而不是默认浏览器
    猜你喜欢
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 2021-10-09
    • 2017-10-03
    • 2018-08-21
    相关资源
    最近更新 更多