如何在c#中获得特定进程的重点元素

时间:2012-02-07 11:47:41

标签: c# process web-scraping

我陷入了我的问题,我已经调用了一个进程,现在我想要它的重点元素。

例如,

。我运行了一个在Google Chrome中打开的www.google.com流程 现在让我说我想搜索“你好”这样做的方式据我所知是得到键盘焦点元素将成为google.com的文本框。所以如何通过我的应用程序,即以编程方式(获取键盘)铬工艺的重点元素) Process[] pr = Process.GetProcessesByName("chrome"); var target = pr[0];

1 个答案:

答案 0 :(得分:1)

你的问题a有点模糊,所以我会尝试基于几种不同的解释给出几点指示:

1)如果您所指的过程始终是一个网站,您应该跳过屏幕抓取技术,如@vulkanino所提到的,只需直接获取网站的内容即可。如果您必须使用真实浏览器(而不是原始HTML本身)解析网站,您可以使用屏幕抓取,但请记住并非所有计算机都使用相同的浏览器。

2)如果你想从正在运行的进程中屏幕抓取信息,你(不幸的是)没有像你期望的那样的简单API,其中Process pr对象包含你可以使用的元素列表遍历。这是因为该过程可能是用.NET / WinForms,.NET / WPF,C ++ / MFC或其他任何非常不同的UI框架编写的。

我建议使用屏幕阅读器辅助功能框架,例如Microsoft的UI Automation,它能够从许多常见应用程序的UI中提取文本。此功能的存在是为了帮助读取难以看清的应用程序UI,但也可以用于屏幕抓取。