0

我几乎是 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”承认“左上角”和“右下角”,但其余的我不知道如何选择。

有任何想法吗?

PS:我在某处看到pywinauto的创建者,用户“markm”在这里回答问题。我可以在这篇文章中标记他或类似的东西,以便他可以看到吗?我是网站新手所以不知道

非常感谢您的帮助

编辑:你知道我是否可以使用 pywinauto 将窗口的全部内容复制到 txt 文件中吗?

4

3 回答 3

0

您可能无法直接在表格中“选择”一行。pywinauto 中不会有诸如a.New.UpperLeftCombo.SelectRow().

相反,您可以做的是将按键发送到表格以选择一行,然后选择它。例如,您可以使用向上和向下箭头键选择一行,然后按空格键选择它。使用TypeKeys方法HwndWrapper将按键发送到控件。

于 2013-04-05T19:27:23.973 回答
0

pywinauto 如果是 Windows ListView 常用控件,则可以使用表。ListViewWrapper 有足够的表格方法: 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 工具之一。纯属偶然,我是其中之一的作者。

于 2013-04-06T06:21:16.367 回答
0

我正在设法用 Swapy 解决它,所以这个问题得到了解决。

还有一个问题,“pywinauto”和“swapy”在 64 位系统上不起作用吗?我有两个工作区,一个 32 位和一个 64 位,我真的很想在这两个工作区工作

于 2013-04-09T15:16:43.147 回答