【发布时间】:2014-04-16 05:42:33
【问题描述】:
我正在尝试从 chrome 网络浏览器 33 版获取 url - 使用 C#。我已经查看并尝试了关于 SO 的不同建议 - 但到目前为止还没有运气。
我尝试过的事情: AutomationElement -> Getting the current tab's URL from Google Chrome using C# 在 33 版 Chrome 网络浏览器中使用自动化无法找到“地址和搜索栏”元素。 我还尝试使用 TreeWalker 以及我发现的唯一元素:
水平滚动条
少量返回
少量转发
垂直滚动条
少量返回
少量转发
“网页标题...”
系统菜单栏
系统
最小化
恢复
关闭
NDde -> Retrieve current URL from C# windows forms application
NDde.Client.DdeClient dde = new NDde.Client.DdeClient("Chrome", "WWW_GetWindowInfo");
dde.Connect();
NDde.Client.DdeClient dde = new NDde.Client.DdeClient("Chrome", "Chrome_OmniboxView");
dde.Connect();
两者都不起作用...无法连接。
FindWindowEx ->
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);
public string GetChromeUrl(Process process)
{
IntPtr handle = IntPtr.Zero;
Process[] procsChrome = Process.GetProcessesByName("chrome");
foreach (Process chrome in procsChrome)
{
// the chrome process must have a window
if (chrome.MainWindowHandle == IntPtr.Zero)
{
continue;
} else
{
handle = chrome.MainWindowHandle;
break;
}
}
IntPtr urlHandle = FindWindowEx(handle, IntPtr.Zero, null, "Address and search bar");
if (urlHandle != IntPtr.Zero)
{
Console.WriteLine("yes!");
}
return "";
}
也不行……
我走了多远
所以我使用 UI Spy 和检查来查找 Chrome 33 中多功能框的名称。 在 UI spy 中根本找不到它,但在检查中我找到了“地址和搜索栏”,它具有我所追求的 url 值......问题是我如何获取该 url 信息?
有什么想法吗?
【问题讨论】:
标签: c# google-chrome url browser web