Я пытаюсь написать инструмент для автоматической установки двоичного файла. По сути, я использую comtypes и интерфейс MSAA для взаимодействия с окнами установки и запуска процедуры установки. Когда появляется окно, я рекурсивно перечисляю все элементы в этом окне, выбираю наиболее подходящий элемент (обычно кнопка) для взаимодействия и так далее. Инструмент иногда работает нормально. Но иногда перечисление элементов может занимать очень много времени (может быть до 1,5 минут для не очень сложного окна). И эта проблема, похоже, связана со временем. Это не радует все время. Я застрял на этой проблеме в течение недели. Может кто-нибудь помочь? Пожалуйста !!!
Я могу подумать об одной возможности: пока я перечисляю окно, это окно уничтожается целевым приложением, после чего COM-сообщение отключается и не может выполнить дальнейшую навигацию. Может ли это быть потенциальной причиной? Я не могу убедить себя в этом, потому что окно, наконец, перечислено. Если окно исчезает во время перечисления, обход дерева элементов окна должен завершиться неудачей, нет?