注册表-如何将 Internet Explorer 注册为 URI 方案并从 chrome 调用?

注册表-如何将 Internet Explorer 注册为 URI 方案并从 chrome 调用?

为了能够以 格式从 chrome 启动 Internet Explorer ie:https://example.com,我添加了以下注册表:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\ie]
"URL Protocol"="\"\""
@="\"URL:IE Protocol\""

[HKEY_CURRENT_USER\Software\Classes\ie\shell]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open\command]
@="cmd /K set url=\"%1\" & call set url=%%url:ie:=%% & call start iexplore %%url%%"

但是,第一次启动 IE 时运行正常,但是第二次启动时由于双引号而失败url(可能是 IE 的一个错误)。 在此处输入图片描述

我尝试了以下两种方法来删除双引号,但都没有效果:

  1. 消除": call set url=%%url:\"=%%。这将导致命令停止在\"并且 IE 不会出现。

  2. 删除第一个和最后一个字符: call set url=%%url:~1,-1%%。根本就没变url

那么,如何才能删除注册表中脚本的双引号cmd?或者是否有其他解决方法可以在 Chrome 中启动 IE(尽量省力)?

答案1

当 Internet Explorer 检测到多个实例时,似乎出了问题,并可能尝试在这种情况下执行一些特殊操作。命令行选项控制“合并”行为,特别是-nosessionmerging-noframemerging。当我提供这些时,我可以成功启动其他 Internet Explorer 窗口。

此外,如果您希望命令提示符在启动后消失,则可以使用开关/c代替/k。应用这些更改并清除其他值的多余引号将为我们带来此更新的注册表文件:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\ie]
"URL Protocol"=""
@="URL:IE Protocol"

[HKEY_CURRENT_USER\Software\Classes\ie\shell]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open\command]
@="cmd /c set url=\"%1\" & call set url=%%url:ie:=%% & call start iexplore -nosessionmerging -noframemerging %%url%%"

答案2

我使用下面的方法,以便在 Chrome 中打开 file:// 链接

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\ie]
"URL Protocol"=""
@="URL:IE Protocol"

[HKEY_CURRENT_USER\Software\Classes\ie\shell]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open\command]
@="cmd /c set url=\"%1\" & call set url=%%url:ie:=%% & call start iexplore.exe -nosessionmerging -noframemerging -extoff %%url%%"

例如:

<a href="ie:file://server/log/Log.mdb">Test</a>

相关内容