C#如何从Chrome获取当前网址(多种语言设置)

时间:2016-04-29 08:28:24

标签: c# google-chrome

我正在尝试从Chrome浏览器获取当前网址。当我的浏览器使用英语时,我的代码正在运行。但是当某人有不同的语言时,由于比较而无法正常工作。

AutomationElement elm = AutomationElement.FromHandle(p.MainWindowHandle);
AutomationElement elmUrlBar = null;

// elmUrlBar = elm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty,   "Adresse und Suchleiste"));
// if (elmUrlBar != null)
elmUrlBar = elm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "Address and search bar"));

if (elmUrlBar != null)
{
    AutomationPattern[] patterns = elmUrlBar.GetSupportedPatterns();
    if (patterns.Length > 0)
    {
        ValuePattern val = (ValuePattern)elmUrlBar.GetCurrentPattern(patterns[0]);
        objSchemeDetail.ProcessName = val.Current.Value;
    }
}

我将“地址和搜索栏”更改为德语,但仍然无效。什么是替代品?

1 个答案:

答案 0 :(得分:0)

Chrome是由Google提供的Chromium版本。铬源代码位于chromium.googlesource.com。正在搜索"地址和搜索栏"我发现generated_resources_en-GB.xtb显示带有ID的英文文本,例如:

<translation id="2824775600643448204">Address and search bar</translation>

当我在德语版本(generated_resources_de.xtb)中搜索相同的ID时,我找到了

<translation id="2824775600643448204">Adress- und Suchleiste</translation>

因此,您似乎必须为要支持的每种语言检查此文件。在铬版本48及更新版本中,此文本似乎已移至不同的位置。