屏幕抓取并控制第三方.NET应用程序

时间:2012-09-14 00:28:43

标签: c# reflection hook screen-scraping ui-automation

问题:

在正在运行的第三方应用程序中从.Net UI控件中获取文本并将输入发送到所述应用程序的最佳方法是什么?由于部署限制,目标平台的范围从XP到Win7。我们可以使用的Max .NET版本是3.5。

背景

我的团队的任务是与我们行业广泛使用的遗留应用程序集成。这种集成需要在第三方应用程序的UI中读取数据,并在某些情况下按下该应用程序UI上的按钮。

我们得到了第三方应用程序开发人员的支持,但他们没有API来执行这些功能。

我们之前通过api hooks使用普通的win32应用程序成功完成了这项工作,但不是在.net中。

我觉得我应该重申:我们对应用中可能的UI状态有深入的了解;显然,如果一个人没有这么深的知识,那里就会有各种各样的陷阱。

我很好奇其他人在这里做了些什么。有什么建议或指示吗?

2 个答案:

答案 0 :(得分:1)

我建议MS UI Automation

尝试使用UI Spy调查您的申请。如果您在UI Spy中看到足够的信息来完成工作,它应该适合您。 API不容易进入,但我建议不要使用基于它构建的框架来简化操作。大多数这些框架都有性能或其他问题。

如果您需要操作的应用程序中的控件非常复杂(例如来自Infragistics的控件),那么您需要保留.NET 3.5的事实可能是个问题。使用LegacyIAccessible Control Pattern

最好使用UI Automation Core完成对最复杂内容的操作

答案 1 :(得分:0)

这是基于网络的吗?如果是这样,请查看iMacros。