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

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

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

> Описание: как использовать
Val_027
Отправлено: 28 Февраля, 2020 - 16:29:57
Post Id



Пользователь
Участник


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




Вот простенький код

win w1=window ("X1"Подмигивание;activate(w1);
mouse(LEFT,262,22,1,w1);mouse(LEFT,42,200,1,w1);sleep(300);mouse(LEFT,200,425,1,w1);

win w2=window ("X2"Подмигивание;activate(w2);
mouse(LEFT,262,22,1,w2);mouse(LEFT,42,200,1,w2);sleep(300);mouse(LEFT,200,425,1,w2);

win w3=window ("X3"Подмигивание;activate(w3);
mouse(LEFT,262,22,1,w3);mouse(LEFT,42,200,1,w3);sleep(300);mouse(LEFT,200,425,1,w3);

вот подскажите пожалуйста как оптимизировать код /подпрограмма с помощью функции/
и совсем шикарно протыкать все в перекрытых окнах. На пилоте у меня это получалось тут туплю по тяжёлой. Заранее спасибо.
 
 Top
Zireael
Отправлено: 29 Февраля, 2020 - 00:29:02
Post Id



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


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




 Цитата:
как оптимизировать код /подпрограмма с помощью функции/

Если это поймёте, то остальное дописать не проблема будет.
CODE:
win w1=window ("X1");
win w2=window ("X2");

loop()
{
func(w1, 52, 99);
func(w2, 477, 46);
}

function func(win w, int x, int y)
{
mouse(LEFT, x, y, 1, w);
pause(500);
}

 Цитата:
протыкать все в перекрытых окнах.

Вместо mouse использовать sendmouse.
 
 Top
Val_027
Отправлено: 29 Февраля, 2020 - 17:27:05
Post Id



Пользователь
Участник


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




проблема будет.

win w1=window("X);activate(w1);
win w2=window("Y");
win w3=window ("Z");

f(w1,262,24);f(w1,42,204);f(w1,200,425);
f(w2,262,24);f(w2,42,204);f(w2,200,425);
f(w3,262,24);f(w3,42,204);f(w3,200,425);

function f(win w, int x, int y)
{sendmouse(LEFT, x, y,w);pause(500);}

Что и сказать /шаг вперед/ но видим же что повторяются коры
видать что то еще надо докрутить....

(Отредактировано автором: 29 Февраля, 2020 - 17:28:39)

 
 Top
Zireael
Отправлено: 29 Февраля, 2020 - 17:50:35
Post Id



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


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




Массивы и циклы для этого есть.
CODE:
win w[3];
w[0]=window("X");
w[1]=window("Y");
w[2]=window ("Z");


for(int i=0; i<3; i++)
{
f(w[i],262,24); f(w[i],42,204); f(w[i],200,425);
}


function f(win w, int x, int y)
{sendmouse(LEFT, x, y, w);pause(500);}
 
 Top
Val_027
Отправлено: 29 Февраля, 2020 - 18:42:09
Post Id



Пользователь
Участник


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




 Zireael пишет:
Массивы и циклы


Спасибо !!! просто у Вас все более понятно чем в примерах . на форумах там очень умно для меня... А?! Закатив глазки
 
 Top
Val_027
Отправлено: 06 Марта, 2020 - 15:42:13
Post Id



Пользователь
Участник


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




 Val_027 пишет:
циклы


Это работает !
win wo[10];

{wo[1]=window("q");wo[2]=window("w");wo[3]=window("e");wo[4]=window("r");
wo[5]=window("t");wo[6]=window("y");wo[7]=window("u");wo[8]=window("i");
wo[9]=window("p");
for(int s=0; s<10; s++){SL(wo[s],262,22,42,200,200,425);}

function SL(win wo,int x,int y,int x1,int y1,int x2,int y2)
{activate(wo);sleep(200);
sendmouse(LEFT,x,y,wo);sleep(200);sendmouse(LEFT,x1,y1,wo)
;sleep(100);sendmouse(LEFT,x2,y2,wo);sleep(100);}}

а вот подскажите можно ли в функцию размеры окна вставить и
//wo.leftclient = 0;wo.topclient = -5;wo.widthclient = 1920;
//wo.heightclient = 1058;activate(wo);moveclient(wo)

только это /activate(wo);/ можно вставить. на это /wo.leftclient = 0;/ уже ругается ?
 
 Top
Zireael
Отправлено: 06 Марта, 2020 - 16:03:39
Post Id



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


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




Если нужно изменить позицию и размеры окна, то можно так:
CODE:
external(INT, "MoveWindow", "MoveWindow", "User32"); // в начало скрипта


win wo[2];
wo[0]=window ("Новый текстовый документ.txt – Блокнот", "Notepad", -1); // окно1
wo[1]=window ("Новый текстовый документ (2).txt – Блокнот", "Notepad", -1); // окно2


for(int s=0; s<sizearray(wo); s++)
{
if(wo[s])move_window(wo[s], 200, 50, 500, 300); // переметить окна в координаты 200 50 и изменить размер 500 300
else messagebox("Окно не найдено");
}

function move_window(win w, int X, int Y, int cx, int cy)
{
MoveWindow(formatwi(w), X, Y, cx, cy, 0);
}
 
 Top
Val_027
Отправлено: 06 Марта, 2020 - 16:41:04
Post Id



Пользователь
Участник


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




 Zireael пишет:
Если нужно

Да работает Спасибо. но интересный момент Пришлось координаты и размеры настраивать по новой..

external(INT, "MoveWindow", "MoveWindow", "User32"); win wo[10];

wo[0]=window("X");
wo[1]=window("y");
итд.

for(int s=0; s<sizearray(wo); s++)
{if(wo[s])move_window(wo[s], -8,-34,1936,1094);}

function move_window(win w, int X, int Y, int cx, int cy)
{MoveWindow(formatwi(w), X, Y, cx, cy, 0);}
 
 Top
Zireael
Отправлено: 06 Марта, 2020 - 16:59:24
Post Id



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


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




 Цитата:
Пришлось координаты и размеры настраивать по новой..

Перемещается окно, а не клиент, можно так:
CODE:
external(INT, "MoveWindow", "MoveWindow", "User32");
external(INT, "GetWindowInfo", "GetWindowInfo", "User32");
int WINDOWINFO[15];
// всё что выше в начало скрипта

win wo[2];
wo[0]=window ("Новый текстовый документ.txt – Блокнот", "Notepad", -1); // окно1
wo[1]=window ("Новый текстовый документ (2).txt – Блокнот", "Notepad", -1); // окно2


for(int s=0; s<sizearray(wo); s++)
{
if(wo[s])move_client(wo[s], 200, 50, 500, 300);
else messagebox("Окно не найдено");
}


function move_client(win w, int X, int Y, int cx, int cy)
{
WINDOWINFO[0]=60;
GetWindowInfo(formatwi(w), address(#WINDOWINFO[0]));
MoveWindow(formatwi(w), X-(WINDOWINFO[5]-WINDOWINFO[1]), Y-(WINDOWINFO[6]-WINDOWINFO[2]), cx, cy, 0);
}
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by