Что нового

[Элементы GUI] Нажатие на двойную кнопку в GUI

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Здравствуйте господа.
Необходимо нажать на двойную кнопку в GUI, переход клавиатурой не получается (нажимается большая кнопка "Настройка...), а необходимо нажать на маленькую кнопку с треугольником.
Клик по координатам, по непонятным причинам не всегда корректно нажимает.
Код:
...
WinWaitActive ("ViPNet Monitor",'',30)
ControlClick ("ViPNet Monitor",'Настройка...','Button2' , "left" , 1, 125,10)
...

Подскажите как со 100% вероятностью нажать кнопку?

 

InnI

AutoIT Гуру
Сообщения
4,911
Репутация
1,427
ZeVSalt
по непонятным причинам не всегда корректно нажимает
А что происходит при нажатии? Если появляется всплывающее меню, то оно может быть закрыто при активации любого другого окна.

Попробуйте такой вариант нажатия
Код:
ControlSend("ViPNet Monitor", "Настройка...", "Button2", "{down}")
Если не поможет, пробуйте варианты с нажатием Alt или Ctrl. Цель - имитировать нажатие с клавиатуры.
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
клавиатурные нажатия не подходят, пробовал разные комбинации всегда нажимается сама кнопка "Настройки...", а не вторая маленькая.
а при клике на маленькую кнопку открывается выпадающее меню.
В случае если нажатие происходит, дальше скрипт отрабатывает корректно, выбирает нужный пункт меню.
Весь затык именно в нажатии кнопки, может как то по поиску пикселей найти этот треугольник?
Подскажите пожалуйста фрагмент кода с поиском треугольника, я пока с поиском пикселей не сталкивался.

Если сделать
Код:
ControlSend("ViPNet Monitor", "Настройка...", "Button2", "{down}")
в этом случае, фокус переходит на предыдущую кнопку.
 

InnI

AutoIT Гуру
Сообщения
4,911
Репутация
1,427
ZeVSalt
Такой вариант
Код:
...
WinWaitActive ("ViPNet Monitor",'',30)
For $i = 0 To 9
  ControlClick ("ViPNet Monitor", 'Настройка...', 'Button2', "left" , 1, 125, 10)
  Sleep(100)
  If WinExists("[class:#32768]") Then ExitLoop
Next
If $i = 10 Then MsgBox(0, ":(", "10 попыток не увенчались успехом")
...
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Спасибо, буду тестить.
 
Верх