grBIN |
Отправлено: 02 Апреля, 2018 - 00:29:55
|
Наблюдатель
Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017
Откуда: Псков
Репутация: 2
|
Зачем вам это?
Просто прямой свайп делаеться просто:
Нажимаем лкм; Перемещаем мышь; Отпускаем лкм;
Если нужна некая рандомность во время движения мыши или регулирование скорости перемещения, то подключаем:
enablerealmouse(10, 15, 10, 10);
Первый параметр скорость движения. Чем число больше - тем скорость ниже.
Второй - величина искривления в пути.
Третий - Рандомность конечной координаты X, при работе функций (mouse, mousedown, mouseup - рандомность клика)
Четвертый - Рандомность конечной координаты Y, при работе функций (mouse, mousedown, mouseup - рандомность клика)
Если нужно что бы мышь двигалась всегда с небольшой дугой, то пишите отдельную функцию, хотя в большинстве случаев и enablerealmouse справляется.
P.S. Если вам нужен более менее рандомный свайп в прямом смысле слова, например для андроид эмулятора делаем так:
Берем рандомную точку из 1 области и с зажатой клавишей двигаем в рандомную точку 2 области. - свайп вправо, и наоборот, свайп влево.
Пишем небольшую функцию с параметром 1 или 0, а потом просто вызываем, 0 свайп влево, 1 свайп вправо.
[img](для просмотра ссылки Вам необходимо авторизоваться) /img] |
|
|
Budni |
Отправлено: 02 Апреля, 2018 - 07:07:48
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael пишет: Записать движения мыши, потом воспроизводить.
Когда я их записываю, то движения мыши не происходит, только клики по заданным местам.
Если записать макрос с помощью автокликера то тут всё воспроизводит как надо, но я не могу же записать данный макрос в программу ( или я что то не понимаю?
grBIN , Свайп нужен не рандомный, а именно такой какой как проведу мышкой. Ну я так понимаю тут придётся писать огромный код из movenouse. в каждой точке (( думал что можно проще как то реализовать.
(Добавление)
собственно сделал так
CODE:mousemove (1017, 355);
pause (25);
mousemove (1029, 348);
pause (21);
mousemove (1056, 351);
pause (18);
mousemove (1082, 363);
pause (18);
mousemove (1099, 387);
pause (20);
mousemove (1110, 403);
pause (17);
mousemove (1113, 409);
pause (20);
mousemove (1116, 433);
pause (23);
mousemove (1115, 453);
pause (21);
mousemove (1102, 465);
pause (20);
mousemove (1093, 472);
pause (21);
mousemove (1089, 473)
pause (21);
mousemove (1052, 471);
pause (28);
mousemove (1038, 467);
pause (23);
mousemove (1026, 466); конечно не то что я хотел))(Отредактировано автором: 02 Апреля, 2018 - 07:18:14) |
|
|
Zireael |
Отправлено: 02 Апреля, 2018 - 10:36:16
|
Эксперт
Покинул форум
Сообщений всего: 4456
Дата рег-ции: Нояб. 2017
Репутация: 585
|
code (Отобразить)CODE:int x, y;
int X[99999], Y[99999];
int sleep_=10;
string name=input("Введите имя для функции");
string path="C:\Mouse.txt"; // путь для сохранения txt файла с функцией
textout(0, 500, 500, "Зажать левую кнопку мыши для начала записи движения курсора", 2);
textout(1, 500, 520, "Отпустить левую кнопку мыши для остановки записи движения курсора", 2);
while(getkeystate(1)==0)sleep(1);
disabletextout(1);
for(int i=0; i<99999 && getkeystate(1)==1; i++)
{
getmouse(x, y);
X[i]=x; Y[i]=y;
sleep(sleep_);
}
if(fopen (path, "w")!=0)
{
fwrite("function "+name+"()");fwrite(ENDL);
fwrite("{");fwrite(ENDL);
fwrite("int x["+format(i)+"], y["+format(i)+"];")fwrite(ENDL);
for(int j=0;j<=i-10;j=j+10)
{
for(int k=0;k<10;k++)fwrite("x["+format(j+k)+"]="+format(X[j+k])+"; ");fwrite(ENDL);
}
for(k=j;k<i;k++)fwrite("x["+format(k)+"]="+format(X[k])+"; ");fwrite(ENDL);
for(j=0;j<=i-10;j=j+10)
{
for(k=0;k<10;k++)fwrite("y["+format(j+k)+"]="+format(Y[j+k])+"; ");fwrite(ENDL);
}
for(k=j;k<i;k++)fwrite("y["+format(k)+"]="+format(Y[k])+"; ");fwrite(ENDL);fwrite(ENDL);
fwrite("sleep(100);");fwrite(ENDL);
fwrite("mousedown(LEFT, "+format(X[0])+", "+format(Y[0])+"); sleep("+format(sleep_)+");");fwrite(ENDL);
fwrite("for(int i=0; i<"+format(i)+"; i++)");fwrite("{");
fwrite("mousemove(x[i], y[i]); sleep("+format(sleep_)+");");fwrite("}");fwrite(ENDL);
fwrite("mouseup(LEFT, "+format(X[i-1])+", "+format(Y[i-1])+");");fwrite(ENDL);
fwrite("}");
fclose();
}
start(path);
Скрипт записывает движения мыши и генерирует готовую функцию для воспроизведения.
Потом можно подключить её через #include и вызывать при необходимости. |
|
|
Budni |
Отправлено: 02 Апреля, 2018 - 15:24:52
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael пишет: code (Отобразить)CODE:int x, y;
int X[99999], Y[99999];
int sleep_=10;
string name=input("Введите имя для функции");
string path="C:\Mouse.txt"; // путь для сохранения txt файла с функцией
textout(0, 500, 500, "Зажать левую кнопку мыши для начала записи движения курсора", 2);
textout(1, 500, 520, "Отпустить левую кнопку мыши для остановки записи движения курсора", 2);
while(getkeystate(1)==0)sleep(1);
disabletextout(1);
for(int i=0; i<99999 && getkeystate(1)==1; i++)
{
getmouse(x, y);
X[i]=x; Y[i]=y;
sleep(sleep_);
}
if(fopen (path, "w")!=0)
{
fwrite("function "+name+"()");fwrite(ENDL);
fwrite("{");fwrite(ENDL);
fwrite("int x["+format(i)+"], y["+format(i)+"];")fwrite(ENDL);
for(int j=0;j<=i-10;j=j+10)
{
for(int k=0;k<10;k++)fwrite("x["+format(j+k)+"]="+format(X[j+k])+"; ");fwrite(ENDL);
}
for(k=j;k<i;k++)fwrite("x["+format(k)+"]="+format(X[k])+"; ");fwrite(ENDL);
for(j=0;j<=i-10;j=j+10)
{
for(k=0;k<10;k++)fwrite("y["+format(j+k)+"]="+format(Y[j+k])+"; ");fwrite(ENDL);
}
for(k=j;k<i;k++)fwrite("y["+format(k)+"]="+format(Y[k])+"; ");fwrite(ENDL);fwrite(ENDL);
fwrite("sleep(100);");fwrite(ENDL);
fwrite("mousedown(LEFT, "+format(X[0])+", "+format(Y[0])+"); sleep("+format(sleep_)+");");fwrite(ENDL);
fwrite("for(int i=0; i<"+format(i)+"; i++)");fwrite("{");
fwrite("mousemove(x[i], y[i]); sleep("+format(sleep_)+");");fwrite("}");fwrite(ENDL);
fwrite("mouseup(LEFT, "+format(X[i-1])+", "+format(Y[i-1])+");");fwrite(ENDL);
fwrite("}");
fclose();
}
start(path);
Скрипт записывает движения мыши и генерирует готовую функцию для воспроизведения.
Потом можно подключить её через #include и вызывать при необходимости.
Спасибо! При запуске функции которую сгенерировал скрипт выдает ошибку
[/url]
сам код
CODE:function q()
{
int x[67], y[67];
x[0]=1350; x[1]=1403; x[2]=1461; x[3]=1515; x[4]=1555; x[5]=1619; x[6]=1644; x[7]=1661; x[8]=1663; x[9]=1666;
x[10]=1666; x[11]=1666; x[12]=1666; x[13]=1663; x[14]=1661; x[15]=1659; x[16]=1656; x[17]=1656; x[18]=1656; x[19]=1656;
x[20]=1656; x[21]=1655; x[22]=1655; x[23]=1655; x[24]=1653; x[25]=1651; x[26]=1641; x[27]=1641; x[28]=1641; x[29]=1641;
x[30]=1641; x[31]=1641; x[32]=1641; x[33]=1641; x[34]=1641; x[35]=1641; x[36]=1641; x[37]=1641; x[38]=1641; x[39]=1641;
x[40]=1641; x[41]=1641; x[42]=1641; x[43]=1641; x[44]=1641; x[45]=1641; x[46]=1641; x[47]=1641; x[48]=1641; x[49]=1641;
x[50]=1641; x[51]=1641; x[52]=1641; x[53]=1641; x[54]=1641; x[55]=1641; x[56]=1641; x[57]=1641; x[58]=1641; x[59]=1641;
x[60]=1641; x[61]=1641; x[62]=1641; x[63]=1641; x[64]=1641; x[65]=1641; x[66]=1641;
y[0]=195; y[1]=215; y[2]=243; y[3]=278; y[4]=324; y[5]=433; y[6]=493; y[7]=543; y[8]=560; y[9]=593;
y[10]=611; y[11]=617; y[12]=621; y[13]=623; y[14]=625; y[15]=627; y[16]=628; y[17]=628; y[18]=628; y[19]=628;
y[20]=628; y[21]=628; y[22]=628; y[23]=628; y[24]=629; y[25]=629; y[26]=631; y[27]=631; y[28]=631; y[29]=631;
y[30]=631; y[31]=631; y[32]=631; y[33]=631; y[34]=631; y[35]=631; y[36]=631; y[37]=631; y[38]=631; y[39]=631;
y[40]=631; y[41]=631; y[42]=631; y[43]=631; y[44]=631; y[45]=631; y[46]=631; y[47]=631; y[48]=631; y[49]=631;
y[50]=631; y[51]=631; y[52]=631; y[53]=631; y[54]=631; y[55]=631; y[56]=631; y[57]=631; y[58]=631; y[59]=631;
y[60]=631; y[61]=631; y[62]=631; y[63]=631; y[64]=631; y[65]=631; y[66]=631;
sleep(100);
mousedown(LEFT, 1350, 195); sleep(10);
for(int i=0; i<67; i++){mousemove(x[i], y[i]); sleep(10);}
mouseup(LEFT, 1641, 631);
}
q();
что не так? |
|
|
Kibor |
Отправлено: 02 Апреля, 2018 - 21:06:28
|
Эксперт
Покинул форум
Сообщений всего: 8203
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Budni пишет: что не так?
q(); вверху поставьте.
Этот скрипт повторит движение мыши по траектории рисунка C:\WW.bmp
Рисунок должен быть нарисован черной, однопиксельной толщины линией, инструментом карандаш на белом фоне.
CODE:int Swype[2000][2000];
loadimage (#Swype[0][0], "C:\WW.bmp");
int ex=imagewidth(#Swype[0][0]);
int ey=imageheight(#Swype[0][0]);
int x, y, tx, ty;
calculation();
draw(200, 150);
function calculation()
{
int col;
for (y=1; y<ey-1; y++)
{
for (x=1; x<ex-1; x++)
{
if (Swype[x][y]==0)
{
col=Swype[x-1][y-1]+Swype[x][y-1]+Swype[x+1][y-1]+Swype[x-1][y]+
Swype[x+1][y]+Swype[x-1][y+1]+Swype[x][y+1]+Swype[x+1][y+1];
if (col==117440505)
{
tx=x; ty=y;
return;
}
)
}
}
}
}
function draw(int sx, int sy)
{
int error=0;
int temp_X, temp_Y;
mousedown(LEFT, tx+sx, ty+sy);
temp_X=tx; temp_Y=ty;
a:;
mousemove(tx+sx, ty+sy);
Swype[tx][ty]=1;
for (y=ty-1; y<ty+2; y++)
{
for (x=tx-1; x<tx+2; x++)
{
if (Swype[x][y]==0)
{
temp_X=tx; temp_Y=ty;
tx=x; ty=y;
error=0;
goto a;
}
}
}
error++;
if (error<9)
{
tx=temp_X; ty=temp_Y;
goto a;
}
mouseup(LEFT, tx+sx, ty+sy);
}
|
|
|
Zireael |
Отправлено: 23 Июня, 2021 - 01:53:26
|
Эксперт
Покинул форум
Сообщений всего: 4456
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: У меня не работает,выдает ошибку 1 1
Что может быть?
Была пропущена ;. Исправил.
code (Отобразить)CODE:int x, y;
int X[99999], Y[99999];
int sleep_=10;
string name=input("Введите имя для функции");
string path="C:\Mouse.txt"; // путь для сохранения txt файла с функцией
textout(0, 500, 500, "Зажать левую кнопку мыши для начала записи движения курсора", 2);
textout(1, 500, 520, "Отпустить левую кнопку мыши для остановки записи движения курсора", 2);
while(getkeystate(1)==0)sleep(1);
disabletextout(1);
for(int i=0; i<99999 && getkeystate(1)==1; i++)
{
getmouse(x, y);
X[i]=x; Y[i]=y;
sleep(sleep_);
}
if(fopen (path, "w")!=0)
{
fwrite(name+"();");fwrite(ENDL);
fwrite("function "+name+"()");fwrite(ENDL);
fwrite("{");fwrite(ENDL);
fwrite("int x["+format(i)+"], y["+format(i)+"];");fwrite(ENDL);
for(int j=0;j<=i-10;j=j+10)
{
for(int k=0;k<10;k++)fwrite("x["+format(j+k)+"]="+format(X[j+k])+"; ");fwrite(ENDL);
}
for(k=j;k<i;k++)fwrite("x["+format(k)+"]="+format(X[k])+"; ");fwrite(ENDL);
for(j=0;j<=i-10;j=j+10)
{
for(k=0;k<10;k++)fwrite("y["+format(j+k)+"]="+format(Y[j+k])+"; ");fwrite(ENDL);
}
for(k=j;k<i;k++)fwrite("y["+format(k)+"]="+format(Y[k])+"; ");fwrite(ENDL);fwrite(ENDL);
fwrite("sleep(100);");fwrite(ENDL);
fwrite("mousedown(LEFT, "+format(X[0])+", "+format(Y[0])+"); sleep("+format(sleep_)+");");fwrite(ENDL);
fwrite("for(int i=0; i<"+format(i)+"; i++)");fwrite("{");
fwrite("mousemove(x[i], y[i]); sleep("+format(sleep_)+");");fwrite("}");fwrite(ENDL);
fwrite("mouseup(LEFT, "+format(X[i-1])+", "+format(Y[i-1])+");");fwrite(ENDL);
fwrite("}");
fclose();
}
start(path);
Полученный код вставить в кибор и запустить, скрипт повторит движение мыши. |
|
|
|