Не работает эмуляция мыши

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
Всем, Привет.

Не работает эмуляци мыши... не знаю может и не правильно делаю...
Мои действия:
приложил скрин эмуляция мыши.PNG
эмуляция мыши - должна курсор мыши передвинуть по заданным координатом, после чего сделать клик левой кнопкой мыши по ссылке.
Конечные координаты курсора - это расположение ссылки.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Этот экшен не для движения мыши. Вы просто задаете облать, в которую производится клик.
 
  • Спасибо
Реакции: Aleksandr

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
Спасибо, хорошо.
Есть у кого нибудь пример использования Emulator.MouseMove(instance.ActiveTab.Handle, x--, y++) и MouseMove(Int32,Int32,Int32,Int32,Boolean) или MouseMove(Int32,Int32,Boolean)
Просто вообще не пойму, куда их нужно помещать...?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
А на аватарку котика поставите?)))))

Вот так выглядят клики через CodeCreator
Раз Emulator.MouseClick(instance.ActiveTab.Handle,ZennoLab.Emulation.MouseButton.Left,ZennoLab.Emulation.MouseButtonEvent.Click,20,80);
Два instance.Click(50,50,245,245,"Left","Normal");

Вот так выглядит перемещение мышки в заданные координаты
Emulator.MouseMove(instance.ActiveTab.Handle,80,245);
Вот так по топорному выглядит перемещение мышки из точки А в точку Б
int x = 10;
int y = 10;
Emulator.MouseMove(instance.ActiveTab.Handle,x,y);
for(int i =0;i<100;i++)
{
x++;
y++;
Emulator.MouseMove(instance.ActiveTab.Handle,x,y);
}
 
  • Спасибо
Реакции: Aleksandr

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
А на аватарку котика поставите?)))))
А что это будет значить? )))


Раз Emulator.MouseClick(instance.ActiveTab.Handle,Zenn oLab.Emulation.MouseButton.Left,ZennoLab.Emulation .MouseButtonEvent.Click,20,80);
Два instance.Click(50,50,245,245,"Left","Normal");

Вот так выглядит перемещение мышки в заданные координаты
Emulator.MouseMove(instance.ActiveTab.Handle,80,24 5);
Вот так по топорному выглядит перемещение мышки из точки А в точку Б
int x = 10;
int y = 10;
Emulator.MouseMove(instance.ActiveTab.Handle,x,y);
for(int i =0;i<100;i++)
{
x++;
y++;
Emulator.MouseMove(instance.ActiveTab.Handle,x,y);
}
Из выше описанного вами и то что нашел на форуме понял, что реализация движение курсора по сайту относительно много ) а вот куда помещать ваши примеры и другие примеры найденные на форуме не понятно...
Вот например делаю проект в проджект мейкер перед событием "эмуляция мыши - т.е клик по определенной облости" нужно что бы курсор мыши появился из края области браузера и двигался по направлению к области клика "эмуляции мыши" если вдруг будете скачивать проект, то если говорить пряма - к области клика, кнопка **НОВОСТИ*** в меню.
-вот скрин эмульция курсо&#10.PNG
-вот сам проект Посмотреть вложение Второй пробный &#.xmlz
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Да я тут подумал) раз кроме глубокого морального удовлетворения от ответов на вопросы больше ничего не достается, то почему бы добровольно принудительно активно вопрошающих не пересадить на аватарки с котиками))))) Приходишь на форум а тут котики кругом))) разве не замечательно))))
щас поковыряю проект
 

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
Да я тут подумал) раз кроме глубокого морального удовлетворения от ответов на вопросы больше ничего не достается, то почему бы добровольно принудительно активно вопрошающих не пересадить на аватарки с котиками))))) Приходишь на форум а тут котики кругом))) разве не замечательно))))
щас поковыряю проект
))) Предлагаю вам тоже поставить на аватарку котика, ну что бы не выделяться из толпы )))
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
ребята! я с вами! :-)
(третьим буду) :az:
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
И правда)) что это я)))
Проект в приложении Посмотреть вложение Аватарку котик&#1.xmlz
А теперь о грустном
Это все конечно замечательно, но надурить метрику или еще кого так просто не удастся по следующим причинам:
- так четко по прямой ни один живой человек не проведет, человекам ближе параболы
- наш человек - редкостный тормоз! ибо живая мышка при движении учтывает ускорение и часть пикселей просто проскакивает отрисовываясь, скажем в каждом 40) - а у нас же быстро! но по каждому пикселю) можно конечно ускорить вдвое без особого геммороя, но все равно будет механистично слишком. нет ни ускорения ни торможения
- В нашем случае - отправная точка всегда одна до пикселя! сотни людей начинают работы с браузером с одного и того же места))) этот параметр конечно проще всего рандомизировать... но этого при прочем будет все равно недостаточно
- живой хомячок... человек то есть в процессе работы совершает конвульсивные движения мышкой туда-сюда, и они должны быть разные)))
В общем... сделать то сделали, но практические выгоды сомнительны.

Для того чтобы построить эмулятор более качественно нужно
1 - знать на сколько пикселей при какой скорости перескакивает мышка у у живого человека
2 - собрать маленькую коллекцию ускорений/торможений
3- каким то макаром в проекте вести конечные координаты мышки
4- регулярно эмулировать конвульсии и трепыхания
5- сделать класс перемещения мыши к цели с учетом параболы и её кривизны

Может проще на wmmail или юзераторе школоту набрать?)))
 

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
И правда)) что это я)))
Проект в приложении Посмотреть вложение 5071
А теперь о грустном
Это все конечно замечательно, но надурить метрику или еще кого так просто не удастся по следующим причинам:
- так четко по прямой ни один живой человек не проведет, человекам ближе параболы
- наш человек - редкостный тормоз! ибо живая мышка при движении учтывает ускорение и часть пикселей просто проскакивает отрисовываясь, скажем в каждом 40) - а у нас же быстро! но по каждому пикселю) можно конечно ускорить вдвое без особого геммороя, но все равно будет механистично слишком. нет ни ускорения ни торможения
- В нашем случае - отправная точка всегда одна до пикселя! сотни людей начинают работы с браузером с одного и того же места))) этот параметр конечно проще всего рандомизировать... но этого при прочем будет все равно недостаточно
- живой хомячок... человек то есть в процессе работы совершает конвульсивные движения мышкой туда-сюда, и они должны быть разные)))
В общем... сделать то сделали, но практические выгоды сомнительны.

Для того чтобы построить эмулятор более качественно нужно
1 - знать на сколько пикселей при какой скорости перескакивает мышка у у живого человека
2 - собрать маленькую коллекцию ускорений/торможений
3- каким то макаром в проекте вести конечные координаты мышки
4- регулярно эмулировать конвульсии и трепыхания
5- сделать класс перемещения мыши к цели с учетом параболы и её кривизны

Может проще на wmmail или юзераторе школоту набрать?)))
Согласен, выгоды может и не быть... был маленький опыт с метрикой и лайвинтернет, даже не опыт микроопыт - не важно... что хочу сказать - лайвинтернет не считал пользователей с нескрытами проксями после примерно 20 хоста, почти подряд, т.е все последующие хосты лайвинтернет игнарировал в течение двух дней, небольшая передышка дня 3-4 снова считает.

Метрика все хавало. Насколько я знаю просто банит сайт за накрутку ну или санкции... Конечно бы если бы продолжил, настигло точно ...

У меня не первоначальная :-) цель попасть в партнеры яши как рекламная площадка. Есть и другие сайты с помощью которых можно чуть-чуть заработать, при этом хостов в день будет достаточно около 50 потом, накрутка уже не нужна будет...
Может проще на wmmail или юзераторе школоту набрать?)))
Не знаю... не пробовал. Но видел на форуме где-то что подобное. Интересно какую прибыль в месяц будет приносить не имею рефералов? Если есть инфа можно ЛС, пожалуйста.

В данном решение есть маленькая неприятность, при выполнение проекта курсор один на двоих, на меня и проект - мешает работать мне и проекту...
float top = float.Parse(project.Variables["topinb"].Value);
float left = float.Parse(project.Variables["leftinb"].Value);
top+=15;
left+=15;
float startx=0;
float starty=0;
float tg = top/left;
for(int i =0;i<left;i++)

{
Emulator.MouseMove(instance.ActiveTab.Handle, Convert.ToInt32(startx), Convert.ToInt32(starty));
startx++;
starty = tg*startx;
}

return 0;
Покопался на форуме еще не нашел решение, тогда начал тыкать в тестере макросов, но увы решение так и не нашел... понял только, что оно есть "вроде"
string Emulator.MouseMove(string windowName, int x,int y, bool topMost)
Но опять же... как его применять, в итоге на тыкал вот что
Emulator.MouseMove(string.windowProba, Convert.ToInt32(startx), Convert.ToInt32(starty), bool topMost);
Ошибки - "'string' не содержит определение для 'windowProba и "'bool' не содержит определение для 'topMost'"

Но не думаю что решение этих ошибок ключ к решению. Но все же думаю подскажет кто, в какаю сторону дальше рыть.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Ошибки - "'string' не содержит определение для 'windowProba и "'bool' не содержит определение для 'topMost'"

Но не думаю что решение этих ошибок ключ к решению. Но все же думаю подскажет кто, в какаю сторону дальше рыть.
1) Попробуйте цикл упаковать в локер
lock (SyncObjects.InputSyncer)
{
for....
}

2) Гм... должно быть примерно так - последний параметр просто указывает будет ли это окно поверх всех окон или нет, по умолчанию стоит false.
Но если честно сомневаюсь насчет 1 переменной... какой то Header of the window.... я хз что подразумевалось тут ввиду)))
В библиотеке тоже загадочное "window"... я попробовал - у меня что то мышка не ожила...
Emulator.MouseMove("page", Convert.ToInt32(startx), Convert.ToInt32(starty), true);

Как то так....

ЧТо юзератор что wmmail - довольно все просто - регистрируетесь - добавляете задание в свободной форме - зайти на сайт такой то оттуда то, сделать то то - в качестве подтверждения предоставить то то.

ЧТо касается подтверждений - это больше для школоты, когда она понимает что угадать не получится, и вроде бы есть контроль - она не халявит))) конечно просмотреть результаты все равно не помешает)
 
  • Спасибо
Реакции: Aleksandr

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
Сразу скажу, что кота не поставлю) Но он у меня был недавно.
Задался так же вопросом эмуляции, т.к. попросили реализовать. К сожалению такой функции в зенке нет, а странно. Мне думается, что разрабы спецом не включают пока)
Так вот эмуляцию сделать можно, т.к. имеется же любопытная программка
То есть главный принцип - записать движения, теже конвульсивные, а потом умело рандомизировать порядок.
 

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
посмотрел более детально прогу, ну да всё таже запись координат, но что еще нужно)
Пока думается инструмент в самом постере, который бы делал тоже самое.
Конечно, как решить проблему отдельной мыши для каждого потока не понятно, зато вырисовывается решение как сделать норм. эмуляцию движений.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
А можно ссыль на софтинку?
я, признаться, думал на эту тему, и надо было нашаманить такую же софтинку, а мне было лениво))). В идеале я бы хотел собрать большой лог поведения мышей и собрать коллекцию трасс подходящей длинны, а потом на них накладывать искажения и смещения по паре десятков функций - яша запарится вычислять.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
  • Спасибо
Реакции: Mandyson

Ztt7

Client
Регистрация
10.05.2014
Сообщения
146
Благодарностей
7
Баллы
18
float top = float.Parse(project.Variables["topinb"].Value);
float left = float.Parse(project.Variables["leftinb"].Value);
top+=15;
left+=15;
float startx=0;
float starty=0;
float tg = top/left;
for(int i =0;i<left;i++)

{
Emulator.MouseMove(instance.ActiveTab.Handle, Convert.ToInt32(startx), Convert.ToInt32(starty));
startx++;
starty = tg*startx;
}

return 0;

-- --

Какой должен быть код если ?
X: 100 Y: 150
X: 200 Y: 250
X: 300 Y: 350
 

Ztt7

Client
Регистрация
10.05.2014
Сообщения
146
Благодарностей
7
Баллы
18

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113

proffman

Client
Регистрация
24.01.2013
Сообщения
547
Благодарностей
51
Баллы
28
Этот код instance.ActiveTab.MouseMove(500, 250, 500, 125, false);
будет работать в многопоточном режиме без проблем?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Нужно поставить 1 инстанс на процесс в настройках ZennoPoster.
 

RipWay

Client
Регистрация
21.11.2013
Сообщения
99
Благодарностей
45
Баллы
18
Как можно задать задержку каждому перемещению? Что если импортировать записанные из этой проги в зенно?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)