在当前屏幕上获取指定文本的坐标

时间:2011-06-22 15:32:24

标签: c# windows winapi hook automated-tests

所有。
我想编写一个GUI自动化工具,可以在当前屏幕上找到文本标签(绝对位置),这样我就可以驱动鼠标光标点击它。
所需功能的签名应如下所示:

指向GetTextCoordination(字符串文本)

任何人都知道如何实现这个?我不想使用OCR或计算机视觉技术来解决性能问题。 TextOut win32api函数的挂钩是否可行?

2 个答案:

答案 0 :(得分:0)

我不认为挂钩TextOut功能是一个可行的解决方案(虽然它当然可能)。您无法保证使用此功能绘制要查找的文本。尝试使用OCR同样会遇到困难。

我怀疑为了您的目的,枚举目标应用程序的窗口(使用GetWindow和相关函数)并检查每个窗口的文本(使用GetWindowText)来查找所需的窗口就足够了。这将为您提供一个窗口句柄,您可以从中获得窗口边界或直接向其发送消息。

答案 1 :(得分:0)

您想使用GUI自动化工具包,例如UIAutomation库或白色库(它是UIAutomation的包装)或AutoIT。

(或者也有商业工具 - 如果您正在研究设置测试自动化程序,那么您最好使用其中一种商业工具,因为它们有很多功能可以实现这种功能。事情比较容易。)