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のバグである可能性があります)。
二重引用符を削除するために次の2つの方法を試しましたが、どちらも機能しませんでした。
"
を削除します:call set url=%%url:\"=%%
。これにより、コマンドは\"
で停止し、IEは表示されません。
最初と最後の文字を削除します:call set url=%%url:~1,-1%%
。 url
はまったく変更されません。
では、レジストリのcmd
スクリプトで二重引用符を削除するにはどうすればよいですか?または、ChromeでIE(最小限の労力で))を起動する別の回避策はありますか?
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%%"
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>