Поиск недостающих идентификаторов управления в Microsoft Minesweeper с помощью Pywinauto
Я пытаюсь разработать решатель для хорошего оле тральщика, но сталкиваюсь с проблемой.
Среда: я установил Python 3.4.6 (x64) и использую Pywinauto 0.61 и старый Windows 7 Minesweeper из Winaero "Игры для Windows 7 для Windows 10".
Проблема: Кажется, я не могу ни определять элементы диалога, ни взаимодействовать с ними с помощью Pywinauto, но из проверки я могу сказать, что они явно присутствуют.
1) тральщик
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, но безуспешно. У меня вопрос, что я мог упустить?
Спасибо за любые подсказки или предложения.