0

我正在尝试为优秀的 ole' Minesweeper 开发求解器,但遇到了麻烦。

环境:我设置了 Python 3.4.6 (x64) 并使用 Pywinauto 0.61 和 Winaero 的“Windows 10 的 Windows 7 游戏”中的旧 Windows 7 Minesweeper。

问题:我似乎无法检测到对话框项,也无法使用 Pywinauto 与它们进行交互,但我可以通过检查来判断它们显然存在。

1)扫雷

2) Inspect.exe 显示进程 ID(与 pywinauto 匹配)和所有相关子进程

3) Print_Control_Identifiers() 在窗口和孩子上的结果。缺少 2) 中所示的孩子

我的代码是这样的:

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

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

怀疑:首先,这是微软的产品,通过传统的 Pywinauto 方式根本无法访问。另一个想法是我看到 UIA 和 win32 类型冲突,在 Pywinauto 中的后端之间交替没有产生任何结果。我还尝试使用我能够通过 inspect.exe 确定的代码直接按名称访问对话框,但没有成功。我的问题是,我会错过什么?

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

4

0 回答 0