将窗口的内容获取到文本文件

时间:2013-04-22 20:12:46

标签: python python-2.7 sendkeys pywinauto

我正在尝试使用HwndWrapper.Texts(),它应该是“返回此控件的每个项目的文本”,但它只会返回“u'Fight plan settings dialog”的图块,为什么会发生这种情况?

代码是这样的:

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文档,我无法找到一种方法来获取前一个窗口的内容到文本文件中(除了用DoubleClick()点击和复制每个项目和那么Ctrl+C与TypeKeys太长了)。有什么想法吗?

编辑:此外,我发现PrintControlIdentifiers无法轻松保存到字符串文件中。当我要求c时,做c = prog.PrintControlIdentifiers()会返回None。有什么方法吗?

谢谢

1 个答案:

答案 0 :(得分: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。 我很乐意帮助虚拟控制器!

UKHH - MDN91