web-dev-qa-db-ja.com

レジストリ-InternetExplorerをURIスキームとして登録し、Chromeから呼び出す方法は?

chrome形式ie:https://example.comでInternet Explorerを起動するために、次のレジストリを追加しました。

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の二重引用符が原因で2回目に失敗しました(IEのバグである可能性があります)。 enter image description here

二重引用符を削除するために次の2つの方法を試しましたが、どちらも機能しませんでした。

  1. "を削除します:call set url=%%url:\"=%%。これにより、コマンドは\"で停止し、IEは表示されません。

  2. 最初と最後の文字を削除します:call set url=%%url:~1,-1%%urlはまったく変更されません。

では、レジストリのcmdスクリプトで二重引用符を削除するにはどうすればよいですか?または、ChromeでIE(最小限の労力で))を起動する別の回避策はありますか?

2
CDT

Internet Explorerが複数のインスタンスを検出し、その場合に何か特別なことをしようとすると、問題が発生しているように見えます。 「マージ」動作、具体的には-nosessionmerging-noframemergingを制御するための コマンドラインオプション があります。それらを提供すると、追加のInternetExplorerウィンドウを正常に起動できます。

また、起動後にコマンドプロンプトを非表示にする場合は、/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
Ben N

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>
0
Simpuhl