使用Pywinauto在Microsoft Minesweeper中查找丢失的控件标识符

时间:2017-12-13 07:51:34

标签: python pywinauto uia

我正在尝试开发一个好的解决方案'扫雷,但遇到了麻烦。

环境:我设置了Python 3.4.6(x64)并使用了Pywinauto 0.61和Winaero的旧Windows 7 Minesweeper"用于Windows 10和Windows 34的Windows 7游戏;

问题:我似乎无法使用Pywinauto检测对话框项目,也无法与它们进行交互,但我可以从检查中看出它们显然存在。

1)Minesweeper

2)Inspect.exe showing the process ID - which matches pywinauto's - and all relevant children

3)Results of Print_Control_Identifiers() on the window and the child. Lacking the children shown in 2)

我的代码是这样的:

app = pywinauto.Application().connect(class_name="Minesweeper")
mswpr = app.window(title="Minesweeper")
mswpr.print_control_identifiers()
mswpr.child_window().print_control_identifiers()

在摆弄了几个小时之后,我仍然不确定我错过了什么。我希望看到一个组列表,一个菜单栏和一个标题栏出现在其中一个输出中(给出检查结果):确认它们被pywinauto识别,但我什么也没有给出。鉴于inspect和pywinauto之间的进程ID和窗口尺寸匹配,我确信程序正在找到正确的进程和窗口。

怀疑:首先,作为微软的产品,通过传统的Pywinauto方式无法访问。另一个想法是,我看到冲突的UIA和win32类型,在Pywinauto的后端之间交替产生了什么。我还试图通过名称直接访问对话框,我可以通过inspect.exe确定代码,但没有成功。我的问题是,我能错过什么?

感谢您提供任何线索或建议。

0 个答案:

没有答案