我几乎是Python的新手,我开始使用模块“pywinauto”来控制我正在使用的程序。
我正在做这样的事: 来自pywinauto导入应用程序
prog=application.Application()
prog.start_('RAMPlus.exe')
prog.RAMPlus.MenuSelect('File->New')
直到这里一切都很好,但现在“新”窗口是这样的:
2个表,1个名为“左上角”,另一个名为“右下角”。 每个表有两行“Lat:”和“Long:”,每行有3行。我需要修改每一行的值
如果我尝试
a.New.UpperLeftCombo.Click()
我收到消息“pywinauto.controls.win32_controls.StaticWrapper object at 0x013A9BF0>”所以我认为“pywinauto”承认“左上角”和“右下角”,但其余的我不知道如何选择。
有什么想法吗?
P.S:我看到某个地方是pywinauto的创建者,用户“markm”在这里回答问题。我可以在这篇文章中标记他或类似的内容以便他能看到它吗?我是网站的新手,所以不知道非常感谢你提前帮助
编辑:你知道我是否可以使用pywinauto将窗口的整个内容复制到txt文件中?答案 0 :(得分:0)
您可能无法直接在表格中“选择”一行。 pywinauto中没有方法,例如a.New.UpperLeftCombo.SelectRow()
。
您可以做的是将键按发送到表中以选择行然后选择它。例如,您可以使用向上和向下箭头键选择一行,然后按空格键将其选中。使用HwndWrapper
{{1}}方法将按键发送给控件。
答案 1 :(得分:0)
ColumnCount(), GetSelectedCount(), Select(item)
等等。
我不确定您是否a.New.UpperLeftCombo.Click()
使用了表格控件,似乎UpperLeftCombo
只是一些文字(pywinauto.controls.win32_controls.StaticWrapper object at 0x013A9BF0>
)。
尝试获取窗口的所有控件并查找ListView
控件。
您可以使用a.New.print_control_identifiers()
执行此操作,或者最简单的方法是使用pywinauto的GUI工具之一。凭借纯粹的机会,我是其中之一的作者。
答案 2 :(得分:0)
我设法用Swapy来解决这个问题,所以这个问题就解决了。
还有一个问题,那就是“pywinauto”和“swapy”在64位系统上不起作用?我有两个工作区,一个32位和一个64位,我真的很想在两个工作区工作