このコードを使用した WPF C# アプリがあります。
foreach(SHDocVw.InternetExplorer ie in shellWindows)
{
Debug.WriteLine("ie.Location:" + ie.LocationURL);
}
繰り返しの時点で、Internet Explorer ウィンドウを 2 つ開いています。それらの最初のものはJSでもう一方を開きました。
背後にあるシナリオは、IE ユーザーの最初のインスタンスで製品から選択し、[注文の作成] ボタンを押すことです。このボタンを押すと、IE の 2 番目のインスタンスが開き、書式設定された注文が印刷できるようになります (自動的に [印刷] ダイアログも開きます)。
上記のコードでは、最初の IE インスタンスのみが表示され、他のインスタンスは表示されません。繰り返しの前にいくつかのIEウィンドウを手動で開くと、shellWindowsでもそれらを見ることができます。
2 番目に開かれた IE のインスタンスが shellWindows に存在しない理由はありますか? IE の 2 番目のインスタンスに接続する他の方法はありますか?