Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: algirdas on August 17, 2017, 08:35:34 PM
-
В заданной точке необходимо опознать тип знака мышки, не "лапка " ли это, и в случае положительного исхода выполнить необходимое действие. Процедура GETSCREEN делает фото области убирая изображение мыши, дальше анализировать нечего. Как выйти из ситуации ?
Может в дальнейшем при возможной модификации GETSCREEN для работы с массивами (сейчас это не работает) предусмотреть и пятый параметр - разрешение снимка с изображением указателя мышки ? И вообще запись GETSCREEN(M)
несколько симпатичней GETSCREEN(a, b, c, d).
-
Системная переменная $_cursor Содержит код вида указателя мыши
-
[spoiler=Re: как распознать указатель мыши, GETSCREEN не помощник](https://s8.hostingkartinok.com/uploads/images/2017/08/b33be3e4983940f57b027107e389cf66.png) (https://hostingkartinok.com/show-image.php?id=b33be3e4983940f57b027107e389cf66)[/spoiler]
WHILE(1)
LOGWRITE ($_cursor)
WAITMS(500)
END_CYC
-
Спасибо за науку. Вопрос закрыт.
-
WHILE(1)
LOGWRITE ($_cursor)
WAITMS(500)
END_CYC
Чуть допилил скрипт, теперь он игнорирует при выводе стандартный вид курсора и текстовый курсор (к сожалению, курсор принимает вид текстового ($_cursor=7) и при наведении на обычный текст в браузере, и при наведении на весьма полезные поля форм ввода). В браузере на обычной странице я обнаружил только три вида курсора (текст, дефолтная стрелка, рука над ссылкой\кнопкой).
#name "cursorz"
define($init)
if ($init=0)
logclear
inc($init)
end_if
WHILE(1)
if (($_cursor!5)&($_cursor!7)) // 5 default 7 text 33 hand
LOGWRITE ($_cursor)
WAITMS(500)
LOGWRITE ("###")
end_if
WAITMS(500)
END_CYC
-
Вот у тебя привычка задом наперед все делать. Зачем работать методом исключения если известно что конкретно нужно. И еще нужно понимать что такое бесконечный цикл. Допиливаю твой вариант. Тоже самое, но без лишних движений. У меня коды курсора другие, и есть загрузка (кружочек кружится) с четвертым кодом. А если учитывать всякие стрелки при перетягивании или изменении размеров окна, то их штук 15 наберется.
#name "cursorz"
logclear
WHILE(1)
if ($_cursor=33) // 5 default 7 text 33 hand
LOGWRITE ("Лапка")
WAITMS(500)
LOGWRITE ("###")
end_if
WAITMS(500)
END_CYC
-
Подсмотрел у других и как-то так. На разных машинах и системах код лапки разный, пришлось ввести начальное присвоение и дополнительную глобальную переменную для кода указателя на конкретной машине.
#name "set_mouse_point"
LOGSHOW(1)
print("Начальная установка")
print("Наведите мышкой'лапку'на обьект и нажмите'ALT+D' ")
WAITMS(50)
WHILE(ISKEYDOWN(#ALT)=0)
WHILE(ISKEYDOWN(#D)=0)
$v = $_cursor
WAITMS(50)
END_CYC
WAITMS(50)
END_CYC
print("ОК,код'лапки'=",$v )
//=============================================
work, вычисляем $ax, $ay
//=============================================
$ax = 1210
$ay = 170
MOVE($ax,$ay)
IF($_cursor = $v )
BEEP(800,200)
LCLICK($ax,$ay)
END_IF
//
//
halt