【问题标题】:Open browser only if page not displayed仅在页面未显示时打开浏览器
【发布时间】:2013-01-08 06:28:42
【问题描述】:

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

但是,如果 url 已经显示在浏览器中,我不想打开另一个浏览器窗口或选项卡;我想导航到已经打开的浏览器/选项卡。

这可能吗?

【问题讨论】:

  • 是的,你可以试试这样的 NickV string url = HttpContext.Current.Request.Url.AbsoluteUri;
  • 这是一个 WPF 应用程序。我没有 HttpContext。我错过了什么吗?
  • 你在你的 .cs 文件顶部使用 System.Web 吗?
  • 这不是一个好主意。它破坏了预期的 UI 功能。

标签: c# wpf


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    相关资源
    最近更新 更多