Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: цикл отдельно от нажатий клавиш
Ponimaesh
Отправлено: 25 Февраля, 2025 - 13:05:25
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2025  
Репутация: 0




помогите сделать, что бы цикл работал паралельно например другому циклу или нажатий клавиш. То есть работает скрипт нажимает клавиши, ищет изображения и хочу что бы паралельно ему(циклу) нажимались клавиши отдельно от него, так нужно потому что надо быстро кликать клавишой, а в скрипт это добавить немогу, потому что в нем есть ожидания больше 100сек и возможно ли это вообще)
 
 Top
Zireael
Отправлено: 25 Февраля, 2025 - 13:23:31
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4552
Дата рег-ции: Нояб. 2017  
Репутация: 590




Используйте таймер.
Версия 3.33 Добавление функции таймера (код выполняемый по времени)
 
 Top
Ponimaesh
Отправлено: 25 Февраля, 2025 - 14:31:43
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2025  
Репутация: 0




Объясните для бестолковых, тыкал в разные места тот таймер выглядел вот так CREATE_TIMER(0, 1000)
{
key 115;
}
но не работает клик 115 клавиши, а нужно что бы не мешая скрипту клик был раз в 1 сек например, скрипт показать не могу, превышает 6кб
(Добавление)
win W_Kib;
int Size_Key_Char_Kib = -1;
int Screen[3000][3000];
int K_Kib;
int X_Kib[1000];
int Y_Kib[1000];
int Image1[11][10];
int eCol_Kib;
int eX_Kib;
int eY_Kib;
int Image0[8][8];

getdisplay(eCol_Kib, eX_Kib, eY_Kib);

load_images();

loop()
{
goto KIB_2;
KIB_9: FindImage(0, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, #Image1[0][0], 1, 0, 0, 0, #K_Kib, #X_Kib[0], #Y_Kib[0], 0, 0, eX_Kib, eY_Kib, 0, 0, -1, 0, 0, 100, 0, 0, "0, 0, 0, 0", 0, "Левую клик", 0, 0, 5000, 0, 5, 5, 0, 0);
FindImage(0, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, #Image0[0][0], 1, 0, 0, 0, #K_Kib, #X_Kib[0], #Y_Kib[0], 0, 0, eX_Kib, eY_Kib, 0, 0, -1, 0, 0, 100, 0, 0, "0, 0, 0, 0", 0, "Левую клик", 0, 0, 3000, 0, 5, 5, 0, 0);
goto KIB_C1;
KIB_4: Key(0, W_Kib, 1000, 52, "mail@mail.com - Почта", "Клик", 0);
pause(rand(500, 1000));
Key(0, W_Kib, 0, 52, "mail@mail.com - Почта", "Клик", 155000);
goto KIB_9;
KIB_3: Key(0, W_Kib, 1000, 113, "mail@mail.com - Почта", "Клик", 2000);
pause(rand(1000, 1500));
goto KIB_4;
KIB_2: Key(0, W_Kib, 1000, 112, "mail@mail.com - Почта", "Клик", 11000);
pause(rand(1000, 1500));
goto KIB_3;
KIB_C1:
}

function Key(int ew, win w, int p1, int c, string text, string k, int p2)
{
pause(p1);
if (ew==0)
{
if (k=="Клик"){key(c); goto hy;}
if (k=="Нажать"){keydown(c); goto hy;}
if (k=="Отпустить"){keyup(c); goto hy;}
if (k=="Ввод текста"){key(text, 0, 1, getwindow()); goto hy;}
}
if (ew==1)
{
if (k=="Клик"){if ((c>191 && c<256) || c==168 || c==184) sendlanguage("00000419", formatiw(gethwnd())); sendmessage(WM_CHAR, c, 1, w); goto hy;}
if (k=="Нажать"){sendkeydown(c, w); goto hy;}
if (k=="Отпустить"){sendkeyup(c, w); goto hy;}
if (k=="Ввод текста")
{
if (Size_Key_Char_Kib==-1)
{
Size_Key_Char_Kib=100;
new char Key_CHAR[Size_Key_Char_Kib+1];
}
int size_key=size(text);
if (Size_Key_Char_Kib<size_key)
{
delete Key_CHAR;
Size_Key_Char_Kib=size_key;
new char Key_CHAR[Size_Key_Char_Kib+1];
}
strcpy(#Key_CHAR[0], text);
for (int n=0; n<size_key; n++)
{
if ((Key_CHAR[n]>191 && Key_CHAR[n]<256) || Key_CHAR[n]==168 || Key_CHAR[n]==184) sendlanguage("00000419", formatiw(gethwnd()));
sendmessage(WM_CHAR, Key_CHAR[n], 1, w);
sleep(20);
}
}
}
hy: pause (p2);
(Добавление)
}

function FindImage(int ew, int #Scr, win #w, int v_x, int v_y, int #image, int kol, int Sort, int sortx, int sorty, int #mK, int #mX, int #mY, int ex1, int ey1, int ex2, int ey2, int p1, int t, int cf, int def, int r, int proc, int g1, int ignor, string mas_ignor, int p2, string m, int smx, int smy, int p3, int per_m, int per_x, int per_y, int p4, int povtor)
{
pause (p1);
int pvt=0;
int tsmx=smx, tsmy=smy;
S:;
if (t==0)goto d1r;
looptime(t)
{
d1r:;
if (ew==0)mK=findimage(SWIFT*g1, kol, #image[0][0], cf, def, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, -1);
if (ew==1)mK=findimage(SWIFT*g1, kol, #image[0][0], cf, def, #mX[0], #mY[0], v_x+ex1, v_y+ey1, v_x+ex2, v_y+ey2, r, r, r, r, r, r, proc, 1, -1);
if (ew==2)mK=findimage(SWIFT*g1, kol, #image[0][0], cf, def, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, w);
if (ew==3 || ew==4)mK=findimage(SWIFT*g1, kol, #image[0][0], cf, def, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, #Scr[0][0]);
if (mK>0 || t==0) break;
sleep(5);
}
if (mK<1) return mK;
if (ew==3 || ew==4){ex1=ex1+screenstartx(); ey1=ey1+screenstarty();}
for (int n=0; n<mK; n++)
{
mX[n]=mX[n]+ex1;
mY[n]=mY[n]+ey1;
}
if (ignor)
{
mas_ignor=mas_ignor+"^r^n";
string P[4];
int x1, y1, x2, y2;
if (regexsearch(4, #P[0], mas_ignor, "[0-9]+(?=,|\r\n)")==4)
{
x1=formatsn(P[0]); y1=formatsn(P[1]); x2=formatsn(P[2]); y2=formatsn(P[3]);
for (n=0; n<mK; n++)
{
if (mX[n]>x1 && mX[n]<x2 && mY[n]>y1 && mY[n]<y2)
{
mK--;
for (int n1=n; n1<mK; n1++)
{
mX[n1]=mX[n1+1]; mY[n1]=mY[n1+1];
}
if (mK<1) return mK;
n--;
}
}
while (regexsearch(4, #P[0])==4)
{
x1=formatsn(P[0]); y1=formatsn(P[1]); x2=formatsn(P[2]); y2=formatsn(P[3]);
for (n=0; n<mK; n++)
{
if (mX[n]>x1 && mX[n]<x2 && mY[n]>y1 && mY[n]<y2)
{
mK--;
for (n1=n; n1<mK; n1++)
{
mX[n1]=mX[n1+1]; mY[n1]=mY[n1+1];
}
if (mK<1) return mK;
n--;
}
}
}
}
}
if (Sort) sort(sortx, sorty, #mX[0], #mY[0], mK);
pause (p2);
if (ew==0 || ew==3 || ew==1)
(Добавление)
{
if (ew==1){smx=v_x+smx; smy=v_y+smy;}
if (m=="Левую клик"){mouse(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Переместить"){mousemove(smx+mX[0], smy+mY[0]); goto hy;}
}
if (ew==2 || ew==4)
{
if (m=="Левую клик"){sendmouse(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Среднюю клик"){sendmouse(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правую клик"){sendmouse(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Левую нажать"){sendmousedown(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Среднюю нажать"){sendmousedown(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правую нажать"){sendmousedown(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Левую отпустить"){sendmouseup(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Среднюю отпустить"){sendmouseup(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правую отпустить"){sendmouseup(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Левая двойной клик"){sendmousedbl(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Средняя двойной клик"){sendmousedbl(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правая двойной клик"){sendmousedbl(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Переместить")sendmousemove(smx+mX[0], smy+mY[0], w);
}
hy: if (m!="Бездействие")
{
pause (p3);
if (per_m)
{
if (ew==0 || ew==3 || ew==1)mousemove(per_x, per_y);
if (ew==2 || ew==4)sendmousemove(per_x, per_y, w);
}
}
int tX, tY;
if (p4>0)
{
looptime(p4)
{
if (ew==0){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, -1)==0) return mK;}
if (ew==1){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, v_x+ex1, v_y+ey1, v_x+ex2, v_y+ey2, r, r, r, r, r, r, proc, 1, -1)==0) return mK;}
if (ew==2){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, w)==0) return mK;}
if (ew==3 || ew==4){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, #Scr[0][0])==0) return mK;}
sleep(5);
}
}
if (povtor>0 && pvt<povtor)
{
smx=tsmx; smy=tsmy;
if (ew==0){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, -1)==1) {pvt++; goto S;}}
if (ew==1){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, v_x+ex1, v_y+ey1, v_x+ex2, v_y+ey2, r, r, r, r, r, r, proc, 1, -1)==1) {pvt++; goto S;}}
if (ew==2){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, w)==1) {pvt++; goto S;}}
if (ew==3 || ew==4){if (findimage(SWIFT*g1, 1, #image[0][0], cf, def, #tX, #tY, ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, #Scr[0][0])==1) {pvt++; goto S;}}
}
return mK;
}



function load_images()
{
loadimage (#Image0[0][0], "C:\Users\юра\Desktop\ч.bmp");
loadimage (#Image1[0][0], "C:\Users\юра\Desktop\н.bmp");
}
 
 Top
Zireael
Отправлено: 26 Февраля, 2025 - 00:55:55
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4552
Дата рег-ции: Нояб. 2017  
Репутация: 590




Таймер нужно включить. В блоке Старт:
CODE:
enabletimer(0);

Пример работы таймера, каждую секунду будет нажиматься пробел.
CODE:
enabletimer(0);

loop()
{
sleep(10);
}

CREATE_TIMER(0, 1000)
{
key(32);
}
 
 Top
Ponimaesh
Отправлено: 09 Марта, 2025 - 13:34:12
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2025  
Репутация: 0




enabletimer(0);
win W_Kib;
int Size_Key_Char_Kib = -1;

KIB_1: Key(0, W_Kib, 0, 49, "mail@mail.com - Почта", "Клик", 5000);
Key(0, W_Kib, 0, 50, "mail@mail.com - Почта", "Клик", 5000);
goto KIB_1;

loop()
{
sleep(10);
}

CREATE_TIMER(0, 200)
{
key(32);
}
function Key(int ew, win w, int p1, int c, string text, string k, int p2)
{
pause(p1);
if (ew==0)
{
if (k=="Клик"){key(c); goto hy;}
if (k=="Нажать"){keydown(c); goto hy;}
if (k=="Отпустить"){keyup(c); goto hy;}
if (k=="Ввод текста"){key(text, 0, 1, getwindow()); goto hy;}
}
if (ew==1)
{
if (k=="Клик"){if ((c>191 && c<256) || c==168 || c==184) sendlanguage("00000419", formatiw(gethwnd())); sendmessage(WM_CHAR, c, 1, w); goto hy;}
if (k=="Нажать"){sendkeydown(c, w); goto hy;}
if (k=="Отпустить"){sendkeyup(c, w); goto hy;}
if (k=="Ввод текста")
{
if (Size_Key_Char_Kib==-1)
{
Size_Key_Char_Kib=100;
new char Key_CHAR[Size_Key_Char_Kib+1];
}
int size_key=size(text);
if (Size_Key_Char_Kib<size_key)
{
delete Key_CHAR;
Size_Key_Char_Kib=size_key;
new char Key_CHAR[Size_Key_Char_Kib+1];
}
strcpy(#Key_CHAR[0], text);
for (int n=0; n<size_key; n++)
{
if ((Key_CHAR[n]>191 && Key_CHAR[n]<256) || Key_CHAR[n]==168 || Key_CHAR[n]==184) sendlanguage("00000419", formatiw(gethwnd()));
sendmessage(WM_CHAR, Key_CHAR[n], 1, w);
sleep(20);
}
}
}
hy: pause (p2);
}


Можно на примере пожалуйста, вот код примерочный надо что бы клавиша 49 и 50 нажималась каждые 5000мсек, а клавиша 51 каждые 200мсек и что бы они друг друга не ждали
(Добавление)
не 51 а 32 поправочка
 
 Top
Zireael
Отправлено: 09 Марта, 2025 - 13:38:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4552
Дата рег-ции: Нояб. 2017  
Репутация: 590




CODE:
sleep(3000);

enabletimer(0);
enabletimer(1);

loop()
{
sleep(10);
}

CREATE_TIMER(0, 5000)
{
key(49);
key(50);
}

CREATE_TIMER(1, 200)
{
key(32);
}
 
 Top
Ponimaesh
Отправлено: 09 Марта, 2025 - 23:36:18
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2025  
Репутация: 0




спасибо большое, получилось)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Готовые скрипты »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by