2012-02-07 86 views
0

即时贴困在我的问题中,我调用了一个过程,现在我想要它的焦点元素。例如如何在C中获取特定过程的焦点元素#

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

+0

而不是网页抓取,您可能会受益于使用HTTP POST请求到服务器,只是解决HTTP响应。 – vulkanino 2012-02-07 11:51:47

回答

1

你的问题是有点模糊,所以我会尽力给多个指针基于几个不同的解释:

1)如果你所指的过程总是一个网站,你应该跳过屏幕截图技术,如提到的@vulkanino,并直接获取网站的内容。如果您必须将网站解析为真实的浏览器(而不是原始HTML本身),则可以使用屏幕抓取功能,但请记住,并非所有计算机都使用相同的浏览器。 2)如果你想从正在运行的进程中截取信息,你(不幸的是)没有一个简单的API,比如你期望的API,其中Process pr对象包含你可以遍历的元素列表。这是因为这个过程可能是用.NET/WinForms,.NET/WPF,C++/MFC或其他十几种UI框架编写的,它们的工作方式非常不同。

我会建议使用屏幕阅读器辅助功能框架,例如Microsoft的UI自动化,它能够从许多常见应用程序的UI中提取文本。该功能的存在有助于读出应用程序界面以避免视线不清,但也可用于屏幕抓取。

相关问题