2

私は同僚と一緒にプロジェクトに取り組んでおり、これを理解しようとして机の上で頭を悩ませています。私たちの要件は、新しい Internet Explorer ブラウザーに 1 つの Web ページがポップアップ表示され、そこに 2 つのタブが追加されることです。同僚のコンピューターで機能するソリューションを見つけましたが、私のコンピューターと別の同僚のコンピューターで試してみると、機能しませんでした。これまでのところ:

using SHDocVw;

...

ShellWindows iExplorerInstances = new ShellWindows();    
Process.Start("IExplore.exe", "www.reddit.com");
Thread.Sleep(5000);
string url = "http://www.google.com";
IEnumerator enumerator = iExplorerInstances.GetEnumerator();
enumerator.MoveNext();
InternetExplorer iExplorer = (InternetExplorer)enumerator.Current;
iExplorer.Navigate(url, 0x800); //0x800 means new tab 
url = "http://www.banana.com";
enumerator = iExplorerInstances.GetEnumerator();
enumerator.MoveNext();
iExplorer = (InternetExplorer)enumerator.Current;
iExplorer.Navigate(url, 0x800); //0x800 means new tab 

繰り返しますが、これは彼のコンピューターでのみ正しく機能します。私の場合、このコードを実行しようとすると、Internet Explorer ブラウザーが正しく開きますが、InternetExplorer オブジェクトを使用しているにもかかわらず、Firefox のタブが開きます。私はクラスを掘り下げて、見つけた有用なものを印刷しようとしました。InternetExplorer オブジェクトの name プロパティは "Windows Explorer" でした。ShellWindows が実際に行っていることについて詳しく調べましたが、それは理にかなっていますが、役に立ちません。これは、Internet Explorer ではなく InternetExplorer オブジェクトを介して既定のブラウザーを開いていることを意味しているようです。また、Chrome をデフォルトのブラウザとして使用している同僚とは異なる結果が得られました。それが問題かどうかを確認するために、デフォルトのブラウザーを Chrome に切り替えましたが、Chrome で 2 つの余分なタブが開きました。本当に必要なのは、それぞれ独自の URL を持つ 3 つのタブを備えた Internet Explorer ブラウザーを開くことだけです。どんな助けでも大歓迎です。

4

1 に答える 1

0

この男はあなたが探している解決策を持っているようです:

C#から既存のIEウィンドウのタブでURLを起動します

于 2012-11-15T19:57:33.050 に答える