Что нового

[Автоматизация] Не отрабатывает ControlClick на онлайн калькуляторе

Сообщения
137
Репутация
-2
Добрый день, просто не понимаю, почему я не могу нажать ни одной кнопки в онлайн калькуляторе http://www.calculator888.ru/. Вроде код должен быть на несколько строчек, на рекламу прекрасно нажимает на сайте, на кнопки калькулятора - никак, либо случайно нажимает на какую-то одну (один раз и 10), либо же кликает на кнопку, которая просто оказалась прямо под курсором, причём столько раз, сколько у меня функций ControlClick в коде.

Код:
Local $hWnd = WinGetHandle("Калькулятор онлайн - лучший и бесплатный – Yandex") ; 

;$hControl = ControlGetHandle($hWnd, "", "Chrome_RenderWidgetHostHWND1")

Sleep(400)
ControlClick($hWnd, "", "Chrome_RenderWidgetHostHWND1", "left", 1, 550, 330) ; нажать цифру 7
Sleep(400)
ControlClick($hWnd, "", "Chrome_RenderWidgetHostHWND1", "left", 1, 740, 640) ; нажать цифру 8
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
С сайта:
Команды можно вводить мышкой или с клавиатуры.
Ну так попробуйте через Send / ControlSend вводить...

А вообще, зачем вам это надо? Ведь всё это можно же локально реализовать? И почему именно этот сайт? Можно, при желании и необходимости, найти другой, более удобный для автоматизации калькулятор...
 
Автор
D
Сообщения
137
Репутация
-2
Можно и через Send и ControlSend, и локально можно, и калькулятор виндоус применить стандартный вообще. Более того - не в калькуляторе дело и оптимизировать мне его и не нужно вообще. Я случайно ночью набрёл на этот сайт и захотел просто покликать именно мышкой(ControlClick) в неактивном окне (не свёрнутом) на кнопочки этого калькулятора и у меня ничего не получилось. Не выдержал такой несправедливости и написал на форум...Есть какие-то мысли почему нельзя кликать через ControlClick на кнопки этого калькулятора?Вернее, скорее всего, можно, но я не знаю как и прошу мне подсказать в чём моя ошибка.
 
Автор
D
Сообщения
137
Репутация
-2
Никто не подскажет в чём тут дело?Просто признать что не работает и смириться?)
 
A

Alofa

Гость
Dessan сказал(а):
... в чём тут дело?..
Скорее всего в защите сайта от эмуляции нажатия клавиш.
Потому что вот с этим калькулятором нижеследующий код работает.
Код:
Local $hWnd = WinWait('[REGEXPCLASS:Chrome;TITLE:Калькулятор]')
$hControl = ControlGetHandle($hWnd, '', 'Chrome_RenderWidgetHostHWND1')
WinActivate($hWnd)

ControlClick($hWnd, "", $hControl, "left", 1, 420, 320) ; нажать цифру 7
Sleep(300)
ControlClick($hWnd, "", $hControl, "left", 1, 630, 450) ; нажать +
Sleep(300)
ControlClick($hWnd, "", $hControl, "left", 1, 500, 320) ; нажать цифру 8
Sleep(300)
ControlClick($hWnd, "", $hControl, "left", 1, 700, 400) ; нажать =
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Alofa сказал(а):
Скорее всего в защите сайта от эмуляции нажатия клавиш.
Я понимаю ещё какая-нибудь игра, ну тут какой-то калькулятор обычный... Думаю было бы глупо делать такую защиту...
 
A

Alofa

Гость
alex33 сказал(а):
... Думаю было бы глупо делать такую защиту...
Возможно (даже скорее всего). Тогда почему же "ControlClick()" по координатам не проходит?



Добавлено:
Сообщение автоматически объединено:

А вот так работает
Код:
Send('7{+}8{enter}')
:scratch:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Dessan
кликает на кнопку, которая просто оказалась прямо под курсором
Этот калькулятор всего лишь рисунок (canvas). Вероятно, для вычисления нажатой "кнопки" используются реальные координаты курсора мыши.
 
Верх