Windows 使用协议处理程序(即url)从Chrome打开Internet Explorer
我遵循了这些步骤,但它对我来说并不正确。 基本上,我没有定制的应用程序。我只想创建一个处理程序,用一个特定的URL打开IE 这是我的注册码:Windows 使用协议处理程序(即url)从Chrome打开Internet Explorer,windows,internet-explorer,handler,protocol-handler,Windows,Internet Explorer,Handler,Protocol Handler,我遵循了这些步骤,但它对我来说并不正确。 基本上,我没有定制的应用程序。我只想创建一个处理程序,用一个特定的URL打开IE 这是我的注册码: Windows注册表编辑器5.00版 [HKEY\U当前用户\软件\类\ ie] “URL协议”=“\”\“” @=“URL:IE协议” [HKEY\U当前用户\软件\类\ ie\DefaultIcon] @=“explorer.exe,1” [HKEY\U当前用户\软件\类\ ie\shell] [HKEY\U CURRENT\U USER\Softw
Windows注册表编辑器5.00版
[HKEY\U当前用户\软件\类\ ie]
“URL协议”=“\”\“”
@=“URL:IE协议”
[HKEY\U当前用户\软件\类\ ie\DefaultIcon]
@=“explorer.exe,1”
[HKEY\U当前用户\软件\类\ ie\shell]
[HKEY\U CURRENT\U USER\Software\Classes\ie\shell\open]
[HKEY\U CURRENT\U USER\Software\Classes\ie\shell\open\command]
@=“C:\\Program Files\\Internet Explorer\\iexplore.exe\”\%1“
它正在工作,但是。。。当我从Chrome上打开ie:www.google.com时,它要求打开ie,但在打开的URL中保留了“ie:”。。。这会产生一个无止境的循环
我怎样才能解决这个问题
谢谢
经过几次测试后,我转向另一种策略。 我的目标是一个中间批处理脚本。 然后批量拆分协议和url,并打开IE 这是一批:
echo %1%
set var=%1
set var=%var:~4,-1%
Start "" "%ProgramFiles%\Internet Explorer\iexplore.exe" %var%
创建协议处理程序
将此脚本另存为internet explorer协议处理程序.reg:
Windows注册表编辑器5.00版
[HKEY\U当前用户\软件\类\ ie]
“URL协议”=“\”\“”
@=“URL:IE协议”
[HKEY\U当前用户\软件\类\ ie\DefaultIcon]
@=“explorer.exe,1”
[HKEY\U当前用户\软件\类\ ie\shell]
[HKEY\U CURRENT\U USER\Software\Classes\ie\shell\open]
[HKEY\U CURRENT\U USER\Software\Classes\ie\shell\open\command]
@=“cmd/k set myvar=%1&调用set myvar=%%myvar:ie:=%%&调用\”C:\\Program Files(x86)\\Internet Explorer\\iexplore.exe \“%%myvar%%&退出/B”
然后运行脚本在注册表中安装密钥。它将如下所示:
现在,使用ie:
协议的链接将在Internet Explorer中打开
如果将注册表的最后一行作为
@="cmd /C set myvar=%1 & call set myvar=%%myvar:ie:=%% & call start /separate iexplore %%myvar%% & exit"
您不需要创建自定义脚本
在这种情况下,目标URL可以有多个查询参数,您可能会遇到只有第一个参数传递给IE的问题(请检查IE上的地址栏以进行验证)。
在这种情况下,您可以采用以下解决方法。。。只需在编码后创建一个传递目标URL的新html文件,并在IE上打开此html
window.location=“ie:”++“?path=“+encodeURIComponent()代码>以下命令适用于要传递的所有查询参数:
cmd/C set myvar=“%1”&调用set myvar=%%myvar:ie:=%%&调用start/separate“iexplore.exe”%%myvar%%&exit以下是一个解决方案,可以解决包含参数和特殊字符(&,%etc.)的扩展url的问题
像这样:
将reg文件中的命令替换为:
powershell -windowstyle hidden -command "& {$Url = '%1' ; $Url = $Url -replace 'ie:',''; $IE=new-object -com internetexplorer.application ; $IE.navigate2($Url) ; $IE.visible=$true }"
:
一些重要注意事项:
您必须将%1
用双引号括起来。否则带有多个参数的url,如example.com?a=1&b=2
将被剥离到example.com?a=1
,而和之后的参数将被忽略李>
调用iexplore
时必须删除双引号。如果不删除双引号并从chrome中打开多个IE窗口,则只有第一个IE窗口将获得正确的URL。但是使用命令set url=%%url:\“=%%
或set url=%%url:~1,-1%%
删除引号不起作用
如果您无法删除这些引号,请将开关-nosessionmerging
和-noframemerging
添加到iexplore
以控制IE的“合并”行为
以下命令适用于要传递的所有查询参数:
cmd/C set myvar=“%1”&调用set myvar=%%myvar:ie:=%%&调用开始
/单独的“iexplore.exe”%%myvar%%退出
我们需要使用双引号,当链接中有一个符号,并且在删除符号后在IE11中无法打开时。如果url包含特殊字符,例如=或&。从Internet Explorer打开Chrome?带有参数的url,如example.com?a=1&b=2将无法正常工作。它将被剥离为example.com?a=1
和b
被忽略。@Jeremy Danyow它工作得很好!!问题是在打开之前,Chrome会显示一个对话框:“打开Windows命令处理器”“。可以避免确认吗?@gabi13,在那里你可以找到解决方案,我也在试图找到禁用cmd处理器的打开。此外,加载新浏览器时未捕获辅助参数。您需要从url中删除即:
架构。使用@=“cmd/v:on/q/c\”设置url=%1并启动c:\\PROGRA~1\\INTERN~1\\iexplore.exe!网址:~3\“”
第14行如果我理解正确,您可以控制双方(1.创建url的一方和2.读取url并转发到IE的一方),这样您就可以想出自己的特殊转义方案。那么如何从chrome上运行此脚本?它工作得很好。但除了一点化妆品相关的东西。当我点击一个按钮时,我会得到一个类似“打开Windows命令处理器”的提示。是否有办法隐藏此提示,以便用户无需一直单击“打开Windows命令处理器”?
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%%"