2

任何人都知道如何从 Windows 应用程序中的 QWidget 窗口中获取文本?这是我使用 Winspector 查看时的样子:

http://www.tightpoker.com/images/ftplobby.jpg

我会将其发布为图像,但显然不允许新用户使用图像标签...

它找不到任何子类(即锦标赛列表)。我正在尝试找到一种方法来调用正在编写的自定义应用程序中的列表以收集数据。

4

2 回答 2

1

Qt 提供 QAccessibility 类已经有很长一段时间了,它允许像讲述人(开始->运行...->讲述人)或大白鲨这样的屏幕阅读器来处理控件并将它们读给用户。据我所知,从 qt4 左右的某个地方开始,所有标准小部件都支持此功能。

不幸的是,当开发人员决定基于 QWidged 实现自己的控件并且不实现 QAccessibleInterface 时,创建的类是“静音”的,并且对于任何类型的检查器或屏幕阅读器都是不可见的。它只是屏幕上的一组像素。

尝试运行 narrator 并注意打开 ftplobby 后它会说什么,“... 不包含其他已知控件”意味着您可能不走运,应该开始研究 OCR 和模拟点击。

于 2009-07-11T01:32:23.730 回答
0

一旦你在目标应用程序中运行了一些代码,你就可以遍历 QObject 层次结构,从QApplication::topLevelWidgets()开始,并使用QMetaObject::userProperty()

如果您没有在目标应用程序中运行代码,那么我不知道。我很确定也没有办法,因为 Squish 和 KD Executor(用于 KDExecutor 的谷歌,使用谷歌缓存,该网站目前正在改造)都需要将代码(通过预加载)注入 AUT(被测应用程序)。

于 2009-07-10T21:09:09.737 回答