仅在页面未显示时打开浏览器

时间:2013-01-07 20:44:40

标签: c# wpf

我有一个WPF应用程序,我需要shell到浏览器应用程序。我正在使用Process.Start({url})方法来执行此操作。

但是,如果网址已经显示在浏览器中,我不想打开另一个浏览器窗口或标签;我想导航到已打开的浏览器/标签页。

那可能吗?

1 个答案:

答案 0 :(得分: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以外的浏览器,则无效。

另一种方法是使用GeckoFX https://bitbucket.org/geckofx之类的东西或使用WebBrowser控件的单独winform应用程序,而不是使用Process.Start