Я использую этот код для получения URL-адреса открытой активной вкладки в браузере Google Chrome.
public static string GetActiveTabUrl()
{
Process[] procsChrome = Process.GetProcessesByName("chrome");
if (procsChrome.Length <= 0)
return null;
foreach (Process proc in procsChrome)
{
// the chrome process must have a window
if (proc.MainWindowHandle == IntPtr.Zero)
continue;
// to find the tabs we first need to locate something reliable - the 'New Tab' button
AutomationElement root = AutomationElement.FromHandle(proc.MainWindowHandle);
var SearchBar = root.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "Address and search bar"));
if (SearchBar != null)
return (string)SearchBar.GetCurrentPropertyValue(ValuePatternIdentifiers.ValueProperty);
}
return null;
}
Можно ли как-нибудь вернуть текущее имя профиля? имя профиля, которое я имею в виду, находится в верхней правой части браузера Google Chrome, поэтому в нем может быть больше, чем профиль с разными именами. Я хочу получить только текущее имя с URL-адресом, полученным из этой функции. Я могу одновременно открывать или использовать несколько профилей в Google Chrome, поэтому я хочу получить URL активной вкладки и имя профиля вместе с ним или адрес электронной почты этого профиля.
Это изображение с именем профиля. Я хочу, чтобы оно отправлялось из chrome с URL-адресом активной в данный момент вкладки.
поэтому я ожидаю, что что-то подобное, например, будет сделано в C #, чтобы получить имя профиля
var SearchBar = root.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "profile email"));
И последнее, это могут быть c # или java-коды, если это лучше сделать, а также любое решение, которое можно получить на любом языке программирования, пожалуйста, помогите с любой информацией.
Заранее спасибо.