【问题标题】:Controlling a program with "pywinauto" (Windows XP)使用“pywinauto”控制程序 (Windows XP)
【发布时间】:2013-03-28 06:24:56
【问题描述】:

我几乎是 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 文件中吗?

【问题讨论】:

  • (1) 除了张贴图片,是否可以张贴图片的链接? (2) 您不能标记特定用户。您已将您的问题标记为“pywinauto”;如果 markm 登录并检查 pywinauto 标签,他应该能够轻松地看到您的问题。在撰写本文时,这是大约一个半星期以来的第一个 pywinauto 问题。

标签: python windows-xp pywinauto


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

如果是 Windows ListView 通用控件,pywinauto 可以与表格一起使用。 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 工具之一。纯属偶然,我是其中之一的作者。

【讨论】:

  • 我下载了 Swapy 程序,我对它很满意。干得好 SWAPYAutomation ;)
【解决方案3】:

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

还有一个问题,“pywinauto”和“swapy”是否不能在 64 位系统上运行?我有两个工作区,一个 32 位和一个 64 位,我真的很想在这两个工作区中工作

【讨论】:

  • 我在 x64 系统上成功使用 Python 32bit + pywinauto。我只看到一个问题(与 64 位相关) - 系统托盘中的自动化图标有一些问题。
  • 真的吗?我无法通过 easy_install 在我的 64 位中安装 pywinauto 或 sendkeys。那你能告诉我怎么安装吗?
  • (1) 安装 Python 2.x (32bit),(2) 下载 pywinauto 存档sourceforge.net/projects/pywinauto/files/latest/download,(3) 解压并运行“...python.exe setup.py install”跨度>
猜你喜欢
  • 2021-12-10
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
  • 2013-05-06
  • 2012-04-17
相关资源
最近更新 更多