Author Topic: Почему не перетаскивает ссылку?  (Read 6372 times)

0 Members and 1 Guest are viewing this topic.

San4ous

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Почему не перетаскивает ссылку?
« on: November 07, 2016, 10:03:51 PM »
Задача:
Я навожу на ссылку, нажимаю комбинацию клавиш '/' + Numpad1-Numpad9 и ссылка перетягивается в определенное окно и вкладку Хрома. Использую 2 монитора(ноут + 24 дюймовый моник) - поэтому кординаты с минусом некоторые.

Код:

Code: (clickermann) [Select]
//1--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(97)=1))
LCLICK(-1273,184)
END_IF
//2--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(98)=1))
LDOWN($_xmouse,$_ymouse)
WAITMS(50)
LUP(-1070,185)
END_IF   
//3--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(99)=1))
LDOWN($_xmouse,$_ymouse)
WAITMS(50)
LUP(-884,185)
END_IF
//4--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(100)=1))
LDOWN($_xmouse,$_ymouse)
LUP(1066,26)
END_IF
//5--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(101)=1))
LDOWN($_xmouse,$_ymouse)
LUP(1259,26)
END_IF
//6--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(102)=1))
LDOWN($_xmouse,$_ymouse)
LUP(1456,24)
END_IF   
//7--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(103)=1))
LDOWN($_xmouse,$_ymouse)
LUP(1259,26)
END_IF
//8--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(104)=1))
LDOWN($_xmouse,$_ymouse)
LUP(1259,26)
END_IF
//9--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(105)=1))
LDOWN($_xmouse,$_ymouse)
LUP(1259,26)
END_IF


Проблема: не всегда перетягивает(такое впечатление что перетягивает ссылку, только если я в это время случайно дёрну мышкой, хотя координаты перепроверил)

Как исправить чтобы коректно работал скрипт(пробовал добавить задержку - еще хуже).

Помогите о, ВЛАСТЕЛИНЫ клико-скриптов начинающему днищу)))
Заранее благодарен!!!

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #1 on: November 07, 2016, 10:35:42 PM »
в браузерах клики  и прочие нажатия- отжатия просто так не проходят, нужно предварительное изменение курсора или картинки под курсором. у вас есть несколько путей:
1. проверять циклом задержки изменился код курсора на заданный или нет в случаях когда меняется курсор. Если при наведении меняется картинка, то можно сравнивать цвет пикселя до наведения и ждать пока он изменится после наведения.
2.Если хотите пойти по тути наименьшего сопративления, то просто сделайте предварительное наведение на нужные координаты и паузу перед действием. Думаю что срабатывает ваш код в тех местах где нажатие идёт под текущим положением курсора а перемещать недалеко.
3.Если хотите развиваться при достижении поставленной цели то прикрутите к своему скрипту готовый скрипт  с этого форума "плавное перемещение курсора" , это гарантированно решит ваши проблемы.

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #2 on: November 07, 2016, 10:42:27 PM »
да и по отрицательным координатам кликер не работает, он будет кликать в текущие , вместо LCLICK(-1273,184) можно написать LCLICK(-1,184) или LCLICK($_xmouse,184) и клик будет в одно  и тоже место, но к сожалению не туда куда вы хотели.
Чтоб избежать отрицательных координат, располагайте первый монитор, ТОЛЬКО СЛЕВА!

San4ous

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #3 on: November 07, 2016, 11:12:07 PM »
в браузерах клики  и прочие нажатия- отжатия просто так не проходят, нужно предварительное изменение курсора или картинки под курсором.

Я активирую скрипт нажатием клавиш "/" + 1 к примеру.

да и по отрицательным координатам кликер не работает, он будет кликать в текущие , вместо LCLICK(-1273,184) можно написать LCLICK(-1,184) или LCLICK($_xmouse,184) и клик будет в одно  и тоже место, но к сожалению не туда куда вы хотели.
Чтоб избежать отрицательных координат, располагайте первый монитор, ТОЛЬКО СЛЕВА!

монитор слева, в указаном скрипте

Code: (clickermann) [Select]
LCLICK(-1273,184)
работает как часики(а вот остальное нет :-[ :-[ :-[)

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #4 on: November 07, 2016, 11:25:27 PM »
если первый монитор слева, а второй справа, то откуда взялись отрицательные координаты? ;D

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #5 on: November 07, 2016, 11:28:26 PM »
Code: (clickermann) [Select]
LCLICK(-1273,184)
работает как часики(а вот остальное нет :-[ :-[ :-[)
такое чувство, что Вы себя хотите обмануть, работат у вас только одинокий и непонятный клик, а в остальных местах описанные вами неработающие  перетаскивания!!!  :o

San4ous

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #6 on: November 07, 2016, 11:35:04 PM »
если первый монитор слева, а второй справа, то откуда взялись отрицательные координаты? ;D
)?
Ой, он стоит слева, но не является основным. Отсюда и отрицательные... Да какая разница? Координаты работают - не в этом проблема!

Code: (clickermann) [Select]
LCLICK(-1273,184)
работает как часики(а вот остальное нет :-[ :-[ :-[)
такое чувство, что Вы себя хотите обмануть, работат у вас только одинокий и непонятный клик, а в остальных местах описанные вами неработающие  перетаскивания!!!  :o

с одиноким кликом все нормально, а вот с перетаскиванием ссылок проблема!

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #7 on: November 07, 2016, 11:51:27 PM »
Вы спросили:
1. Почему не перетаскивает ссылку?
2. как исправить?
на оба ответа вам даны подробные ответы и если новых вопросов нет, то тему можно переносить в архив.

San4ous

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #8 on: November 08, 2016, 02:21:22 AM »
Плавно(3 вариант) не перетягивается или у меня недостаточно знаний чтобы реализовать :-[
2 допущение неверное ибо перемещать нужно через весь экран!
1 вариант не подходит(там не картинка а текстовая ссылка и зачем вообще проверять,- не понимаю: я сам навожу курсор на ссылку, мне не нужно распознавать есть там ссылка или нет...).

Если очень по простому еще раз вопрос:
Вот есть ссылка, так?
1. Навожу на нее курсор(своими руками, мышкой)
2. Нажимаю комбо клавиш(любое).
3. Ссылка перетягивается в окно и там грузится(ну иначе это как-будто ты копируешь адрес ссылки, кликаешь на вкладку в которой что-то открыто, вставляешь туда адрес вместо того который там и Enter нажимаешь. В хроме такое делается перетягиванием ссылки на уже открытую вкладку, так вот можно реализовать именно процесc перетяжки, а не скопировал-вставил?)

Я прям не знаю как проще объяснить...
Заранее благодарен!

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #9 on: November 08, 2016, 07:56:47 AM »
Да с перетаскиванием такое бывает. Нужно плавно двигать курсор по опорным точкам. Для этого потребуется  скрипт плавного перемещения. Но я не знаю как он будет работать с отрицательными координатами.
Code: (clickermann) [Select]
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
   $MOVE_SPEED = 3  // множитель скорости
   
   $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)
   
   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
   
   FOR($MOVE_i=0, $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


//1--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(97)=1))
   LCLICK(-1273,184)
END_IF
//2--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(98)=1))
   LDOWN($_xmouse,$_ymouse)
   WAITMS(50)
   mouse_move(-1070,185)
   LUP(-1,-1)
END_IF
//3--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(99)=1))
   LDOWN($_xmouse,$_ymouse)
   WAITMS(50)
   mouse_move(-884,185)
   LUP(-1,-1)
END_IF
//4--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(100)=1))
   LDOWN($_xmouse,$_ymouse)
   mouse_move(1066,26)
   LUP(-1,-1)
END_IF
//5--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(101)=1))
   LDOWN($_xmouse,$_ymouse)
   mouse_move(1259,26)
   LUP(-1,-1)
END_IF
//6--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(102)=1))
   LDOWN($_xmouse,$_ymouse)
   mouse_move(1456,24)
   LUP(-1,-1)
END_IF
//7--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(103)=1))
   LDOWN($_xmouse,$_ymouse)
   mouse_move(1259,26)
   LUP(-1,-1)
END_IF
//8--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(104)=1))
   LDOWN($_xmouse,$_ymouse)
   mouse_move(1259,26)
   LUP(-1,-1)
END_IF
//9--------------------------------------------------------
if((iskeydown(111)=1) and (iskeydown(105)=1))
   LDOWN($_xmouse,$_ymouse)
   mouse_move(1259,26)
   LUP(-1,-1)
END_IF
WAITMS(20)


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #10 on: November 08, 2016, 08:42:36 AM »
Как исправить чтобы коректно работал скрипт(пробовал добавить задержку - еще хуже).

Что значит хуже? Какие задержки были прописаны и где?
Хуже быть не может. Хуже как раз сейчас - без задержек.
Моментальные LDOWN-LUP большинство программ нормально не обработают. А тем более с расстоянием в экран.


Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #11 on: November 08, 2016, 10:48:27 AM »

1 вариант не подходит(там не картинка а текстовая ссылка и зачем вообще проверять,- не понимаю: я сам навожу курсор на ссылку, мне не нужно распознавать есть там ссылка или нет...).
Ну раз решили, что неподходит - значит неподходит именно вам и баста!
зачем проверять? Потому, что ваш компьютер проверяет ИМЕННО ЭТО, в обязательном порядке, всегда! и без этой проверки клики и нажатия могут не засчитываться, но это на совести программиста как он решил их засчитывать в своем браузере.
Еслине проверять, то сделанные вами нажатия-отжатия просто могут не пройти, так как связь по интернету это протокол обмена пакетами , а не выделенная вам двухпроводная линия.
Вы незамечаете, когда кликнули и вдруг нет результата, человек, через пол секунды кликнет снова и проблема решена.
Та же песня с наблюдением видоизменения картинок под курсором и вида курсора. Нубасы годами незамечают что они могут и должны меняться, ну просто дикие люди и учиться не хотят.
Вы же позиционировали себя, как желающего чему-то научиться, поэтому вам открывают глаза на все возможные варианты, а не просто кинули  одну строку, типа;
" ГЫ-ГЫ-Гы,  :) вот Днище-то! :P Ставь везде задержки!! :D Ржунимагу! ;D "

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #12 on: November 08, 2016, 11:00:12 AM »
Если очень по простому еще раз вопрос:
Вот есть ссылка, так?
Не факт! очень возможно, что вы описываете ВКЛАДКИ, так как принято открывать по ссылкам с браузера именно их и перетаскивают и открывают в новых окнах имеено вкладки!
Не понимаю, зачем вы решили сначала открывать вкладки в своём браузере, а потом перетаскивать их кудато, когда можно добавив одно нажатие клавиши СРАЗУ открывать по ссылкам нужные вам  страницы В ОТДЕЛЬНОМ ОКНЕ!!!
В поисковике наберите " Горячие клавиши браузера Хром" изучите ЛЕС ВОЗМОЖНОСТЕЙ, а не сидите на своём дереве размахивая хвостом незнания!  8)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #13 on: November 08, 2016, 12:26:22 PM »
Нет, там всё понятно что он делает и зачем.
Есть открытые вкладки. Допустим одна основная и 10 рабочих. Вкладки должны быть доступны всегда и их порядок не должен нарушаться.
Поэтому чтобы открыть новую ссылку во вкладке, к примеру 3, просто берёт и перетягивает ссылку на нужную вкладку тем самым обновляя её.

Я думаю не срабатывает из-за отсутствия задержек. При сериях
Code: (clickermann) [Select]
LDOWN($_xmouse,$_ymouse)
LUP(..., ...)
с разницей в пол экрана, любой браузер будет реагировать через раз.

Мне непонятна фраза
Quote
такое впечатление что перетягивает ссылку, только если я в это время случайно дёрну мышкой
где "держу"? Ведь в скрипте указатель мыши подразумевается над ссылкой  :-\
« Last Edit: November 08, 2016, 12:29:56 PM by Vint »


San4ous

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Почему не перетаскивает ссылку?
« Reply #14 on: November 08, 2016, 05:25:17 PM »
Как исправить чтобы коректно работал скрипт(пробовал добавить задержку - еще хуже).

Что значит хуже? Какие задержки были прописаны и где?
Хуже быть не может. Хуже как раз сейчас - без задержек.
Моментальные LDOWN-LUP большинство программ нормально не обработают. А тем более с расстоянием в экран.

задержки типа waitms(50) между кликами. Изначально тогда я не понимал зачем люди вообще их делают.
Хуже? ;D ;D ;D Ну это значит, что раньше хоть иногда срабатывало, а сейчас вообще не пашет. ;D ;D ;D

Моментальные LDOWN-LUP большинство программ нормально не обработают. А тем более с расстоянием в экран.

Да, действительно. Так у есть. :-\