Поиск недостающих идентификаторов управления в Microsoft Minesweeper с помощью Pywinauto

Я пытаюсь разработать решатель для хорошего оле тральщика, но сталкиваюсь с проблемой.

Среда: я установил Python 3.4.6 (x64) и использую Pywinauto 0.61 и старый Windows 7 Minesweeper из Winaero "Игры для Windows 7 для Windows 10".

Проблема: Кажется, я не могу ни определять элементы диалога, ни взаимодействовать с ними с помощью Pywinauto, но из проверки я могу сказать, что они явно присутствуют.

1) тральщик

2) Inspect.exe, показывающий идентификатор процесса - который соответствует 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, но мне ничего не дают. Я уверен, что программа находит правильный процесс и окно, учитывая, что идентификатор процесса и размеры окна совпадают между inspect и pywinauto.

Подозрения: во-первых, это, как продукт Microsoft, просто недоступно через традиционные средства Pywinauto. Другая идея состоит в том, что я вижу противоречивые типы UIA и win32, чередование бэкэндов в Pywinauto ничего не дало. Я также пытался получить прямой доступ к диалоговым окнам по имени с помощью кода, который я смог определить с помощью inspect.exe, но безуспешно. У меня вопрос, что я мог упустить?

Спасибо за любые подсказки или предложения.

0 ответов

Другие вопросы по тегам