私は WPF アプリケーションを持っており、ブラウザー アプリケーションにシェル アウトする必要があります。これを行うために Process.Start({url}) メソッドを使用しています。
ただし、URL がブラウザーに既に表示されている場合は、別のブラウザー ウィンドウやタブを開きたくありません。既に開いているブラウザ/タブに移動したい。
それはまったく可能ですか?
次の方法を使用して、開いている IE ウィンドウを列挙できます。
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();
string filename;
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
if (filename.Equals("iexplore"))
{
try
{
Uri test = new Uri(ie.LocationURL);
}
catch
{
}
}
}
SHDocVw COM コンポーネントへの参照を追加する必要があります。
また、IE 以外のブラウザを使用している場合、これは機能しません。
別の方法は、Process.Start を使用する代わりに、GeckoFX https://bitbucket.org/geckofxのようなものを使用するか、WebBrowser コントロールを備えた別の winform アプリを使用することです。