Author Topic: Изменение команд движения мыши  (Read 41057 times)

0 Members and 4 Guests are viewing this topic.

СлавьЯнИнъ

  • Активный участник
  • ***
  • Posts: 179
    • View Profile
Re: Изменение команд движения мыши
« Reply #30 on: October 28, 2012, 05:54:17 PM »
Quote
2. ... о пора ехать )
Это о смещении мгновенном.
Code: [Select]
move(($_xmouse-90-rnd(0,90),($_ymouse-90-rnd(0,90))Эта строка будет смещать курсор вверх влево от текущего положения на 90 пикселей, в дополнение к этому смещать ещё вверх влево на случайное значение от 0 до 90.

=========================
1) Когда нужен , или не нужен колормод ( гетскин)? Описать пару характерных случаев.
2) После каких команд в скрипте  задержку  ставить не имеет смысла , а где она очень желательна?
3) В каком случае  задержка рандомного типа имеет смысл?

1.1) Надо сказать, что colormode и getscreen разные вещи.
Говоря о getscreen мы имеем ввиду необходимость анализа текущего изображения на экране.
Например, произошёл переход по ссылке после нажатия или нет.
При отладке и тестовых работах следует в паре с getscreen использовать screenshot. Как показано в справке:
Code: [Select]
getscreen
screenshot
Это позволит оперативно следить за изображением анализируемым сценарием. После отладки, screenshot можно убрать.
1.2) Использование colormode носит специальный характер, и применяется там, где возникают трудности с анализом изображения. Использование его, дополнительно увеличивает нагрузку на процесс сценария. Также во время отладки следует использовать вместе со screenshot.
Code: [Select]
getscreen
colormode (1) // от 1 до 7
screenshot

2) Замечено, что даже при задержке отображения элемента на экране клик в место где он должен быть запоминается и обрабатывается. Однако это шаткая позиция. Задержка, не что иное как ожидание отклика после действия (нажатия, перемещения, запуска и тому подобное). То есть ожидание смены изображения на экране, по простому. В разных условиях время ожидания меняется. Как правило обратно пропорционально вычислительной мощности и скорости передачи данных, мощность и скорость больше значит ожидание меньше.

3) Объективно она не имеет смысла. Задержка должна соответствовать действительному времени обработки данных.
Субъективно, на практике находит применение совмещённая установленная и случайная задержки:
Code: [Select]
waitms (5000+rnd(0,5000))Также в ряде случаев применяется циклическая задержка, которая "сама определяет" необходимое время ожидания.
=========================
Доступные, вразумительные ответы?

Цитрин, мой опыт показывает, что придаёт устойчивость сама задержка между командами ввода, а не её рандомная длительность. Сам пользуюсь диапазонными задержками, потому что нравятся )).
добрый смех равняет всех

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Изменение команд движения мыши
« Reply #31 on: October 28, 2012, 10:37:51 PM »
Использование colormode носит специальный характер, и применяется там, где возникают трудности с анализом изображения.
Спасибо)
 Все доступно. И понятно.
 Однако  стоит заметить, что в справке колормод указан с параметрами  от  0 до 7 .
 Вероятно есть резон указать, что   если  0 ( нет обработки ) то команду колормод не ставим вообще.
 Сейчас там написано, что 0 не имеет смысла.
Это может вводить в заблуждение новичка.
Бабочки полёт будит тихую поляну в солнечном свету...

СлавьЯнИнъ

  • Активный участник
  • ***
  • Posts: 179
    • View Profile
Re: Изменение команд движения мыши
« Reply #32 on: October 29, 2012, 04:54:58 AM »
Помоему в справке нигде не написано "обязательно ставьте команду colormode".
Новичёк её использовать не будет. Просто нет нужды никакой.
И будет прав  :) .
добрый смех равняет всех

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Изменение команд движения мыши
« Reply #33 on: October 29, 2012, 06:20:24 PM »
  colormode".
Новичёк её использовать не будет. Просто нет нужды никакой.
И будет прав  :) .
Хмм.. новичок при непонятках лезет в форумы , а там корифеи смачно обсуждают тонкости колормода.
Понятно,  что ему тоже захочется.
 Психология рядового  юзера , - вот  первый параметр  при создания популярной программы.
Бабочки полёт будит тихую поляну в солнечном свету...

СлавьЯнИнъ

  • Активный участник
  • ***
  • Posts: 179
    • View Profile
Re: Изменение команд движения мыши
« Reply #34 on: October 29, 2012, 07:55:21 PM »
Quote
а там корифеи смачно обсуждают тонкости колормода.
Понятно,  что ему тоже захочется.
Я что-то упустил? Где? Дайте почитать!
Я рядовой пользователь  :)
добрый смех равняет всех

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Изменение команд движения мыши
« Reply #35 on: October 29, 2012, 07:57:26 PM »
Я рядовой пользователь  :)
Рядовой пользователь  это даже не я , а скорее  наш уважаемый прапор.
Бабочки полёт будит тихую поляну в солнечном свету...

Полуночник

  • Активный участник
  • ***
  • Posts: 157
  • Умный не пошлёт на... он скажет -вы далеко пойдёте
    • View Profile
Re: Изменение команд движения мыши
« Reply #36 on: October 30, 2012, 04:51:08 AM »
Прошу прощения что влезаю... Но я не рядовой пользователь... Я вообще даун в таких тонкостях))) Вынужден признать это. Моя работа(строитель-отделочник) совсем далека от компьютеров...
« Last Edit: October 30, 2012, 05:18:38 AM by prapor »

СлавьЯнИнъ

  • Активный участник
  • ***
  • Posts: 179
    • View Profile
Re: Изменение команд движения мыши
« Reply #37 on: November 01, 2012, 03:56:27 PM »
Ладно, здесь наговаривать! Мозги везде нужны, в строительстве тем более.
В купе с активным интересом любая отрасль по плечу.
Удачи нам всем )
добрый смех равняет всех

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Изменение команд движения мыши
« Reply #38 on: August 14, 2013, 09:26:13 AM »
Не так давно вспомнил, что когда-то видел здесь поднималась тема о плавном перемещении мыши.
Естесственно, зачем писать и придумывать велосипед если всё уже придумано. Нашёл, скачал, проверил... и не устроило.
Речь идёт о  MOVE2.cms . Во первых пара увязанных между собой настроек неудобно настраивать, тем более под разные компы (особенно под старый со слабым процем). И главное: скорость перемещения между точками фиксированная, допустим 1 сек. Что через весь экран 1 сек., что подвинуть на 10 пикселов, тоже 1 сек. Настроив под средние/длинные дистанции на "коротких" указатель ползёт как черепаха.
Пришлось написать свой вариант. Для сохранения постоянной скорости привязался к дистанции между стартом и финишем. В качестве параметра скорости выбрал через сколько пикселов "прыгает" мышь при перемещении. Этот вариант более менее приближен к действительности, только нет динамического изменения шага в зависимости от скорости передвижения мыши, но здесь это и не нужно.

Мой вариант (MOVE3):
Code: (clickermann) [Select]
#name "MOVE3"
// Author: VINT
// Version: 1.2 (01.08.2013)

$MOVE_SPEED = 5 // шаг перемещения
$MOVE_END_X = 150 // Конечная координата X
$MOVE_END_Y = 150 // Конечная координата Y
GOSUB(MOVE3)
HALT

SUB(MOVE3)
   $MOVE_Start_X = $_xmouse
   $MOVE_Start_Y = $_ymouse
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
   
   $MOVE_step=(DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)-1)/$MOVE_SPEED   
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
   
   $MOVE_i=0
   FOR($MOVE_i, $MOVE_i<INT($MOVE_step))
      $MOVE_X = $MOVE_X+$MOVE_X_step
      $MOVE_Y = $MOVE_Y+$MOVE_Y_step
      MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
      WAITMS(1)     
   END_CYC
   
   MOVE($MOVE_END_X, $MOVE_END_Y) //Передвинуть окончательно в заданную точку
END_SUB
« Last Edit: August 14, 2013, 09:29:57 AM by Vint »


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Изменение команд движения мыши
« Reply #39 on: August 14, 2013, 09:58:43 AM »
Решил попробовать с динамическим шагом.
В принципе перемещение похоже на MOVE2 но сделано на принципе MOVE3 - не привязано по времени и скорость меняется в более удобных соотношениях. Так на экране 1280х1024 шаг перемещения в зависимости от дистанции меняется в пределах 1-13 пикселей.
Остановлюсь на этом варианте MOVE4.
Множитель подобран для медленного рабочего компьютера.
Code: (clickermann) [Select]
#name "MOVE4"
// Author: VINT
// Version: 1.2 (01.08.2013)

$MOVE_SPEED = 3 // множитель скорости в попугаях меньше-быстрее. Можно дробный
$MOVE_END_X = 150 // Конечная координата X
$MOVE_END_Y = 150 // Конечная координата Y
GOSUB(MOVE4)
HALT

SUB(MOVE4)
   $MOVE_Start_X = $_xmouse
   $MOVE_Start_Y = $_ymouse
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
   
   $dist= DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
   
   $MOVE_SPEEDVAR= INT((SQRT($dist))/$MOVE_SPEED)
   //LOGWRITE ("dist  ",$dist)
   //LOGWRITE ("MOVE_SPEEDVAR  ",$MOVE_SPEEDVAR)
   
   IF($MOVE_SPEEDVAR < 1)
      $MOVE_SPEEDVAR=1
   END_IF
   
   $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
   
   $MOVE_i=0
   FOR($MOVE_i, $MOVE_i<INT($MOVE_step))
      $MOVE_X = $MOVE_X+$MOVE_X_step
      $MOVE_Y = $MOVE_Y+$MOVE_Y_step
      MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
      WAITMS(1)
   END_CYC
   
   MOVE($MOVE_END_X, $MOVE_END_Y) //Передвинуть окончательно в заданную точку
END_SUB
« Last Edit: August 14, 2013, 10:05:04 AM by Vint »


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Изменение команд движения мыши
« Reply #40 on: August 14, 2013, 08:13:18 PM »
Ну и осталось только доработать чтоб записывать 2а числа в одну переменную


MIG29

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Изменение команд движения мыши
« Reply #41 on: September 13, 2013, 02:20:19 PM »
Интересно.

А слабо сделать передвижение мыши не по отрезку между двумя точками а по кривой, а еще чтобы скорость менялась во время передвижения? Ну и чтобы это настраивалось).



if_picture_in - зло

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Изменение команд движения мыши
« Reply #42 on: September 25, 2013, 08:38:50 PM »
А настраивать как будешь? Графики сплайнами рисовать?
И главный вопрос, зачем?


MIG29

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Изменение команд движения мыши
« Reply #43 on: September 25, 2013, 09:17:56 PM »
В этом и заключается мой пост, как сделать, как настроить, как управлять.


Затем чтобы имитировать действия человека)
if_picture_in - зло

BubukaBomb

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Re: Изменение команд движения мыши
« Reply #44 on: February 02, 2015, 06:59:22 PM »
В версии 4.11 не работает? Не могу запустить скрипты ни из поста Vinta, ни из поста Oravena  :'( Чет мозг не работает у меня...