2

我正在尝试使用HwndWrapper.Texts()所谓的“返回此控件的每个项目的文本”,但它只返回“战斗计划设置对话框”的磁贴,为什么会发生这种情况?

代码是这样的:

prog=application.Application()
prog.connect_(path=r'D:\Thesis\Euroscope\Euroscope.exe')
w_handle = pywinauto.findwindows.find_windows(title=u'Fight plan setting dialog', class_name='#32770')[0]
window = prog.window_(handle=w_handle)
c=prog.Fightplansettingsdialog.Texts()

这是我试图从中复制的窗口屏幕:

http://imageshack.us/photo/my-images/802/newpicturewe.png/

我花了一个下午阅读 pywinauto 文档,但我无法找到一种方法将像以前一样的窗口内容放入文本文件中(除了单击并使用 TypeKeys 复制每个项目,DoubleClick()然后Ctrl+C使用太长的 TypeKeys )。有任何想法吗?

编辑:另外,我发现PrintControlIdentifiers不能轻易保存到字符串文件中。当我要求 c 时,执行 c=prog.PrintControlIdentifiers() 返回 None。有什么办法吗?

谢谢

4

1 回答 1

2

您可以通过遍历所有子项来获取窗口中的所有文本。

all_texts = []
for child in window.Children():
  all_texts.extend(child.Texts())
all_texts = filter(lambda t:t, all_texts) # clear empty texts

顺便说一句,窗口似乎应该被称为“飞行计划......”:-)

PS。我很乐意帮助虚拟控制器!

英国HH-MDN91

于 2013-04-23T05:14:35.723 回答