C#获取Firefox中所有打开页面的URL

时间:2017-07-11 13:58:37

标签: c# url firefox

我已经来过这里:

我知道有很多关于这个话题的问题,但是他们都没有正确回答。我很好奇如何获取firefox中所有打开页面的URL,但我找不到提供工作代码的解决方案。

这是互联网上获奖最多的解决方案,但它对我不起作用。 此代码使用DDE(使用NDDE - .NET的一个很好的DDE包装器):

private string GetBrowserURL(string browser)
{
    try
    {
        DdeClient dde = new DdeClient(browser, "WWW_GetWindowInfo");
        dde.Connect();
        string url = dde.Request("URL", int.MaxValue);
        string[] text = url.Split(new string[] { "\",\"" }, StringSplitOptions.RemoveEmptyEntries);
        dde.Disconnect();
        return text[0].Substring(1);
    }
    catch
    {
        return null;
    }
}

我不关心它是否显示历史记录,在第二个Firefox窗口中获取打开页面的URL,我想现在保持简单。请不要为我提供其他浏览器的代码,因为它总是特定于浏览器或任何VB代码。

1 个答案:

答案 0 :(得分:-2)

即使您使用Firefox> 49:

System.Windows.Automation.AutomationElement AutomationElement = System.Windows.Automation.AutomationElement.FromHandle(ptr);
System.Windows.Automation.AutomationElement Elm = AutomationElement.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document));
System.Windows.Automation.AutomationPattern[] BAutomationPattern = Elm.GetSupportedPatterns();
System.Windows.Automation.ValuePattern BValuePattern = (System.Windows.Automation.ValuePattern)Elm.GetCurrentPattern(BAutomationPattern[0]);
CurrentUrlName = BValuePattern.Current.Value.ToString();