Автокликер 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