0

我想在树视图中选择一个项目?我可以使用win32gui.EnumChildWindow函数将窗口树视图控制为SysTreeView32,但无法获取树内项目的详细信息。

你能建议任何自动化树视图的方法吗?我发现了 pywinauto、PyCTreeCntrl 或 win32apis 之类的东西,但我不知道如何将这些东西用于 TreeView

4

2 回答 2

2

这是我为解决我的问题所做的。对我来说, Check() 不起作用。但是,双击项目框或其父矩形上的项目会。

所以,这就是我所做的: 1. 使用检索矩形坐标

ctrl_rect = TreeView.GetItem(Path).Rectangle()

  1. 双击 - 使用

窗口['TreeView'].DoubleClickInput(coords=(ctrl_rect.left, ctrl_rect.top))

我使用了http://sourceforge.net/p/pywinauto/discussion/529287/thread/120750c6/提供的提示

我希望这有帮助

于 2014-08-18T07:06:13.697 回答
2

这是使用 pywinauto 进行树视图自动化的示例

import pywinauto

pwa_app = pywinauto.application.Application()
w_handle = pywinauto.findwindows.find_windows(title=u'PuTTY Configuration', class_name='PuTTYConfigBox')[0]
window = pwa_app.window_(handle=w_handle)
ctrl = window['TreeView']  #SysTreeView32
ctrl.GetItem([u'Connection']).Click()  #Click on a top level element
ctrl.GetItem([u'Connection', u'Data']).Click()  #Click on a sub element
于 2013-07-08T09:50:08.547 回答