使用 pywinauto 获取窗口参数(上、下、右、左)

Posted

技术标签:

【中文标题】使用 pywinauto 获取窗口参数(上、下、右、左)【英文标题】:Getting window parameters with pywinauto (Top,Bottom,Right,Left) 【发布时间】:2016-10-11 10:25:35 【问题描述】:

使用 pywinauto (Top,Bottom,Right,Left) 获取窗口参数我已经设法使用以下 sn-p 获取这些值

PrintControlIdentifiers()

取自他们 github 上的此文档页面。 https://pywinauto.github.io/docs/code/pywinauto.application.html#pywinauto.application.WindowSpecification.PrintControlIdentifiers

它并没有完全按照我的意愿去做,它会在我正在运行的应用程序中寻找一个元素。 (控件标识符)并使用以下参数为我提供它在屏幕上的位置。

(上、下、右、左)

我的问题很简单。是否有一个功能可以在更高级别上运行,它不会进入窗口的元素,而是只打印您打开的窗口的 (Top,Bottom,Right,Left) 值,而不是它的元素。

【问题讨论】:

【参考方案1】:

只需使用.Rectangle() 方法并打印其返回值。

要获得可用方法列表的提示(在交互模式下),方法.WrapperObject() 很有用(在生产中它被隐式调用)。说你有

dlg = app.DialogName.WrapperObject()

然后您可以在 IPython/IDLE/python.exe 中键入 dlg. 并获取窗口的可用方法/属性列表。或者直接使用print(dir(dlg))

【讨论】:

我可以对 Pywinauto 的文档发表我的诚实意见吗?与我一直在使用的其他一些旨在做类似事情的系统相比,Pywinauto 是最难导航的。我会称它为用户不友好。但这只是我的建设性批评。更新库会非常有用。 你是对的。文档是 pywinauto 的一个弱点。我们正在努力改进下一个版本。

以上是关于使用 pywinauto 获取窗口参数(上、下、右、左)的主要内容,如果未能解决你的问题,请参考以下文章

使用pywinauto如何 获取systreeview32内的item(python语言)

如何获取每个打开窗口的名称列表?

Pywinauto:如何调整活动窗口的大小

Pywinauto常用02--pywin32(Python调用win api)

pywinauto - 动态控制总是列在 print_control_identifiers()

python怎么判断windows下的某一个窗口是不是当前正在操作的