Коммуникация COM очень медленная (комтипы и проблема MSAA!) - PullRequest
0 голосов
/ 29 апреля 2011

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

Я могу подумать об одной возможности: пока я перечисляю окно, это окно уничтожается целевым приложением, после чего COM-сообщение отключается и не может выполнить дальнейшую навигацию. Может ли это быть потенциальной причиной? Я не могу убедить себя в этом, потому что окно, наконец, перечислено. Если окно исчезает во время перечисления, обход дерева элементов окна должен завершиться неудачей, нет?

1 Ответ

0 голосов
/ 14 мая 2011

Попробуйте выполнить профилирование сценария, пока проблема не возникнет, затем просмотрите информацию о профилировании, чтобы узнать, на что тратится дополнительное время.

...