Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Отловить кнопки (http://forum.oszone.net/showthread.php?t=329856)

DJ Mogarych 18-09-2017 10:55 2765269

Отловить кнопки
 
Вложений: 1
Добрый день, уважаемые коллеги!

Подскажите, пожалуйста - по каким критериям можно идентифицировать кнопку в 1С, чтобы обеспечить надёжное её нажатие?

Есть 1С Итилиум, в котором нужно для закрытия нарядов нажимать некие кнопки (см. скриншот: Файл 148167).
Но проблема в том, что у кнопок непостоянное значение Instance. То есть, положим, я с помощью AutoIt Windows Info получил значение типа
Код:

Title:        Итилиум 4.4
Class:        V8TopLevelFrameSDI
>>>> Control <<<<
Class:        V8FormElement
Instance:        74
ClassnameNN:        V8FormElement74
Advanced (Class):        [CLASS:V8FormElement; INSTANCE:74]
ID:        274378548
ControlClick Coords:        10, 10

Затем настраиваю клик
Код:

ControlClick($hWin, '', '[CLASS:V8FormElement; INSTANCE:74]', 'left', 1, 10, 10)
Но это сразу же перестаёт работать, потому что при открытии следующего наряда (или даже при открытии того же наряда заново) та же самая кнопка может иметь значение
Код:

>>>> Window <<<<
Title:        Итилиум 4.4
Class:        V8TopLevelFrameSDI

>>>> Control <<<<
Class:        V8FormElement
Instance:        99
ClassnameNN:        V8FormElement99
Advanced (Class):        [CLASS:V8FormElement; INSTANCE:99]
ID:        273451860
ControlClick Coords:        10, 10

В связи с этим вопросы:
  1. Как надёжно ловить эти кнопки, чтобы щёлкать по ним? Есть ли что-то универсальное, чтобы указывать в ControlClick? Табами получается тоже ненадёжно, периодически промахивается.
  2. Есть ли какой-то способ ждать, кроме Sleep, предположим, чтобы была проверка, доступна ли эта кнопка или нет? А то интерфейс периодически тормозит, и паузы то слишком большие, то скрипт не дожидается и шарашит дальше мимо кассы.

Спасибо!

-TRM- 18-09-2017 14:59 2765317

Может в это направление лучше смотреть - типа ControlClick("Итилиум 4.4","","V8FormElement74")

DJ Mogarych 18-09-2017 17:52 2765362

Ну а в другой раз он V8FormElement99, в том-то и дело.


Время: 11:36.

Время: 11:36.
© OSzone.net 2001-