Рассмотрим этот AutoIt код:ControlID изменяется каждый раз, когда окно запускается
WinActivate("Test Window")
Sleep(5000)
ControlClick("Test Window", "", 197128)
Там есть кнопка в окне я тестирование. Я написал простой скрипт, чтобы нажать на кнопку, используя ControlClick. Я использую controlID для идентификации и нажатия на кнопку (я использую окно AutoIt Info для получения идентификатора controlID). Скрипт работает. Проблема в том, что идентификатор элемента управления изменяется каждый раз при запуске тестового окна. В результате скрипт не моделирует нажатие кнопки каждый раз при запуске нового экземпляра окна. Как я могу каждый раз запускать работу controlclick?
Вы также можете использовать '' '' для '$ title' и' $ text' всегда использовать активное окно. – Chrono
@ Chrono, это совершенно не соответствует теме, поскольку мы говорим о получении дескриптора управления, а не дескриптора окна. В любом случае, если вы не кодируете напрямую для любого активного окна, вам следует избегать использования функций control ..() в том виде, в котором вы предлагали, так как это ненадежно. – Milos
Как это не по теме? Я просто говорю, что вы также можете использовать 'ControlClick (" "," "," [CLASS: Button; TEXT: Finish; INSTANCE: 2] ")'. – Chrono