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

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

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

> Описание: Не работоспособность кода в фоновом режиме
Agent_Cent
Отправлено: 19 Июля, 2021 - 13:35:54
Post Id



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


Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2021  
Репутация: 0




Когда работает в активном окне всё работает отлично, но при использовании фонового оно не выполняет функции кода.
По(для просмотра ссылки Вам необходимо авторизоваться) видео автора Vladimir Borda вставил данные с контрола для определения окна по контролу и перед включением ставил мышку на окно куда будут идти действия + ещё использовал sendkey, но и тут бот не реагирует на картинку (Сканирование и при нахождении картинки посылание нажатия в окно).

win w=window ("Nox", "Qt5QWindowIcon", window ("NoxPlayer1 Основа", "Qt5QWindowIcon", -1));
if (w==0){messagebox ("Нету окна"); goto er;}
activate(w);
pause(1000);

int Image_0[21][10];
if (load_images()==-1){messagebox ("Картинки нема"); goto er;}
int Image_2[119][29];
if (load_images2()==-1){messagebox ("Картинки нету"); goto er;}
int x, y;
int u=0;

loop()
{
if(findimage(1, #Image_2[0][0], 0, #x, #y, 0, 0, w.width, w.height, 10, 10, 10, 10, 10, 10, 94, 1, w)==1)
{
sendkey(84, 1, w);
sleep (4000);
}
if(findimage(1, #Image_0[0][0], 0, #x, #y, 0, 0, w.width, w.height, w)==1)
{
sendkey(32, 1, w);
sleep(7000);
}
}

messagebox("Конец");

er:;


function load_images2()
{
if (loadimage (#Image_2[0][0], "D:\Picture\Farm.bmp")<1) return -1;
return 1;
}


function load_images()
{
if (loadimage (#Image_0[0][0], "D:\Picture\Kill.bmp")<1) return -1;
return 1;
}

(Отредактировано автором: 19 Июля, 2021 - 13:36:38)

 
 Top
Zireael
Отправлено: 19 Июля, 2021 - 13:55:07
Post Id



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


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




По этому коду не понять не находится картинка или не срабатывает клик.
В блок поиска добавьте вывод сообщения чтобы видеть что картинка нашлась.
Попробуйте только клик. Будет ли вообще работать, т. к. не во всех приложениях работает.
 
 Top
Agent_Cent
Отправлено: 19 Июля, 2021 - 14:10:02
Post Id



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


Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2021  
Репутация: 0




При активном окне (При указании окна) картинку находит и выводит сообщение, а при свёрнутом (При указании контрол) или фоновом её отыскать не может.
Клик попробовал мышкой на координаты (не работает), клавиатуру (не работает). В активном код работает нормально.

(Отредактировано автором: 19 Июля, 2021 - 14:11:17)

 
 Top
Zireael
Отправлено: 19 Июля, 2021 - 14:19:57
Post Id



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


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




 Цитата:
а при свёрнутом (При указании контрол)

В свёрнутом окне не выводится графика. Для поиска изображения обычно нужно указывать окно, а не контрол.
Используйте другой эмулятор. В LDPlayer нормально работает получение графики в фоновом режиме и клики.
 
 Top
Agent_Cent
Отправлено: 19 Июля, 2021 - 16:07:31
Post Id



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


Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2021  
Репутация: 0




Поставил LDplayer и картинку уже находит хорошо. В коде нажатие клавиши через sendkey теперь не работает.
sendkey('32', 0, w); Попробовал может двойной клик создаёт, но нет оно видимо просто не отправляет сигнал о нажатии.

CODE
if(findimage(1, #Image_0[0][0], 0, #x, #y, 0, 0, w.width, w.height, w)==1)
{
textout (0, 100, 50, "Картинка нашлась", 0);
sendkey('32' , 0, w);
sleep(6000);
}
}

UPD "Картинка нашлась" выводит нормально. И если поставить вывод текста после sendkey, то текст будет исправно показывать.

(Отредактировано автором: 19 Июля, 2021 - 16:08:55)

 
 Top
Zireael
Отправлено: 20 Июля, 2021 - 02:25:25
Post Id



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


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




Искать картинку нужно в окне, а нажатия отправлять контролу.
CODE:
win w = window ("LDPlayer", "LDPlayerMainFrame", -1);
win w2 = window ("TheRender", "RenderWindow", window ("LDPlayer", "LDPlayerMainFrame", -1));
if(w==0){messagebox("Окно не найдено"); goto error;}
if(w2==0){messagebox("Контрол не найден"); goto error;}

if(findimage(1, #Image_0[0][0], 0, #x, #y, 0, 0, w.width, w.height, w)==1) // поиск в окне w
{
textout (0, 100, 50, "Картинка нашлась", 0);
sendkey('32', w2); // отправить нажатие в контрол w2
sleep(6000);
}

error:;
 
 Top
Agent_Cent
Отправлено: 20 Июля, 2021 - 19:26:48
Post Id



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


Покинул форум
Сообщений всего: 22
Дата рег-ции: Июль 2021  
Репутация: 0




Выяснил как оно работает.
Запуск кода
Нахождение картинки
Активация sendkey (И каждый раз нужно нажимать и делать окно активным чтоб sendkey срабатывал)

В блокноте попробовал просто отправлять сигналы sendkey и при перезапуске кода в KIBOR оно перестаёт работать (Исправляет ситуацию перезапуск блокнота).
Что может мешать ?
(Добавление)
Возможно что sendkey просто глючное ?
(Добавление)
UPD w окна, w2 контрола добавлял
 
 Top
Zireael
Отправлено: 20 Июля, 2021 - 19:37:30
Post Id



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


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




 Цитата:
Возможно что sendkey просто глючное ?

Нет.
 Цитата:
В блокноте попробовал просто отправлять сигналы sendkey и при перезапуске кода в KIBOR оно перестаёт работать (Исправляет ситуацию перезапуск блокнота).

В win10 при редактировании текста в блокноте к имени добавляется *. Соответственно при повторном запуске кода окно не будет найдено.
CODE:
win w = window (-1, "Edit", window (-1, "Notepad", -1));
if(w)
{
sendkey("qwe", w);
}
else messagebox("Окно не найдено");
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by