0

私は WPF アプリケーションを持っており、ブラウザー アプリケーションにシェル アウトする必要があります。これを行うために Process.Start({url}) メソッドを使用しています。

ただし、URL がブラウザーに既に表示されている場合は、別のブラウザー ウィンドウやタブを開きたくありません。既に開いているブラウザ/タブに移動したい。

それはまったく可能ですか?

4

1 に答える 1

1

次の方法を使用して、開いている 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 アプリを使用することです。

于 2013-01-07T22:28:42.150 に答える