Что нового

Не получается имитировать нажатие кнопки в эл очереди

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Добрый день!
Суть вопроса: пишу скрипт по работе с электронной очередью.
В пульте оператора необходимо нажать кнопку "Завершить обслуживание"
Для этого смотрю окно эл очереди, вижу его заголовок, текст окна, кнопку, которую надо нажать.
Нажимать пытаюсь, используя ControlClick . Соответственно все это прописываю.
При активации этой команды происходит слегка странное, а именно:
Нажатие кнопки - имитируется (меняется вид окна, активность/неактивность других кнопок, обслуживание клиента завершается),
НО!!!
Если делать это нажатие как положены, мышкой, то помимо всего вышеперечисленного, отключается видеозапись камеры.
Если же я делаю все это командой ControlClick, то видеозапись - не отключается.
За этой кнопкой закреплена комбинация клавиш (CTRL+N). если высылаю команду Send("^n"), то происходит аналгичное, т.е. имитируется нажатие кнопки, процессы меняются, НО видеозапись не отключается.

В чем может быть причина?

Ощущение, что под кнопкой на самом деле находится две кнопки, и мышкой - нажимаются обе, а ControlClik, только одна.

Имитировать нажатие мышкой не пробовал. Там само окно очереди может быть в разных местах + мониторы разные.
Помогите/объясните, в чем может быть проблема?
 

pvnn

Осваивающий
Сообщения
305
Репутация
32
Имитировать нажатие мышкой не пробовал
А если все же попробовать, то получится?
Например:
Код:
AutoItSetOption ('MouseCoordMode',0) ; координаты относительно активного окна
; MouseMove()
MouseClick("left")
 
A

Alofa

Гость
ВиталийВВ сказал(а):
... Ощущение, что под кнопкой на самом деле находится две кнопки...
А вы убедитесь в этом:

Попробуйте MouseClick() по координатам:
Код:
Opt('MouseCoordMode', 2)
Run('calc.exe') ; На примере калькулятора
$hWnd = WinWaitActive('[CLASS:CalcFrame]')
BlockInput(1)
$aPos = ControlGetPos($hWnd, '', '[CLASS:Button; INSTANCE:5]')
MouseClick('primary', $aPos[0] + $aPos[2] / 2, $aPos[1] + $aPos[3] / 2, 1, 20) ; Нажимаем кнопку "1"
BlockInput(0)
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Сегодня утром попробовал нажимать "мышкой" по координатам. Итог прежний, т.е. сама очередь срабатывает типа правильно (меняется окошко, активируются/деактивируются соответствующие кнопки), но камера продолжает писать.
Т.е. результаты работы по ControlClick/горячая клавиша/левая кнопка мыши - идентичны (недонажатие, назовем это так)

Другим Инфо поглядел, показывает что кнопка точно такая же.

Пичалька

В итоге, я конечно выкрутился, т.к. данный режим нажатия считается аварийным, т.е. крайне редким и нештатным, поэтому, при нажатии этой кнопки: нажимаю ее, и, затем, выгружаю пульт оператора из программ (ProcessClose(***)).
В этом случае все срабатывает достаточно корректно и завершение работы происходит в рамках норм и логики программы.

Но в душе свербит жучок внутреннего недовольства.
 
Верх