Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 3.31 Вывод нужных изображений с перекрытого окна повех всех окон

Страниц (9): [1] 2 3 4 5 6 7 8 9 »
 

1. Kibor - 31 Октября, 2014 - 17:06:42 - перейти к сообщению
Добавил возможность контролировать работу скрипта в перекрытом окне путем вывода нужных частей изображения перекрытого окна поверх всех окон.
visualwindow - выводит часть изображения выбранного окна поверх всех окон.
синтаксис:

visualwindow(0, 200, 250, 300, 320, 10, 10 , 100, w);
visualwindow(0, 200, 250, 300, 320, 10, 10 , 100, #Image_0[0][0]);
параметры:
1 - порядковый номер вывода изображения. от 0 до 1000.
2-5 - рамка захвата (клиентские координаты по указателю w)
6-7 - позиция вывода на экран изображения (экранные координаты)
8 - масштаб вывода
9 - указатель на окно или двухмерный массив int в котором хранится изображение или -1 если получаем снимок экрана

Так же можно указать дополнительно первый (не обязательный параметр) - указатель win какого либо диалогового окна куда мы хотим выводить изображение. В этом случае изображение будет выводиться не на экран, а на этот диалог. Можно указывать как свои не модальные диалоги, так и диалоги чужих программ.

Пример:
win aw=window (-1, "MozillaWindowClass", -1);//Получаем указатель на окно
visualwindow(aw, 0, 0, 0, 100, 100, 500, 150 , 100, -1);//Включаем вывод на этом окне
loop()sleep(10);


disablevisualwindow(0);
отключить вывод по порядковому номеру

enablevisualwindow(0);
включить отключенный вывод по порядковому номеру

Включить visualwindow достаточно один раз и он будет работать до завершения скрипта или до disablevisualwindow

пример простой лупы. тут visualwindow в цикле, поскольку меняются координаты..
CODE:
int x, y;
a: getmouse(x, y);
visualwindow(0, x-20, y-20, x+20, y+20, 10, 10 , 800, -1);
sleep(10);
goto a;


Вот как выглядит вывод на экран части игры Дарк Орбит во время работы бота

Нажмите для увеличения


Вот видео работы. Выводится два участка игры, поэтому наблюдается мерцание:
http://youtu.be/AE9RJIaGGTE

=========================

Так же можно выводить на экран изображение хранящееся в двухмерном массиве int.

Этот массив можно заполнять программно (рисовать) или считывать с файла.

Вывод на экран изображения хранящегося в массиве Image_0
CODE:
visualwindow(0, 0, 0, imagewidth(#Image_0[0][0]), imageheight(#Image_0[0][0]), 100, 120, 100, #Image_0[0][0]);


Пример создания не модального диалога и вывода на него изображения части экрана. Можно выводить с файла и окна.
CODE:
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];

pos_size_button0[0][0]=4; pos_size_button0[0][1]=110; pos_size_button0[0][2]=105; pos_size_button0[0][3]=20;
text_button0[0]="Закрыть";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////

showdialog(0, "Наш бот", 558, 234, 115, 170, 1, 1);
//////////

win aw=window("Наш бот");//Получаем указатель на наше окно

visualwindow(aw, 0, 0, 0, 100, 100, 5, 5 , 100, -1);//Включаем вывод на нашем окне

loop()
{
if (flag_button0[0]==1)
{
flag_button0[0]=0;
disablevisualwindow(0);
sleep(100);
destroydialog(0);
goto s;
}
sleep(10);//Убрать после теста
}

s:;

Внимание: Закрытие чужого диалога когда на него идет вывод может привести к ошибке.


Пример рисования линии на кнопке 5 в калькуляторе

CODE:
int Image_0[34][27];
win w=window ("Калькулятор", "CalcFrame", -1);//Указатель на калькулятор

//Эти данные получили в шпионе
int RX=34, RY=27;//Размер кнопки 5
int X1=50, Y1=161;//Позиция кнопки 5 в окне калькулятора (левый верхний угол)

int X2=X1+RX, Y2=Y1+RY;//Позиция кнопки 5 в окне калькулятора (правый нижний угол)

pause (1000);
visualwindow(0, 0, 0, RX, RY, w.leftclient+X1, w.topclient+Y1, 100, #Image_0[0][0]);//включили вывод изображения Image_0 в месте кнопки на экране

loop()
{
screen (#Image_0[0][0], X1, Y1, X2, Y2, w);//Получили снимок кнопки 5 в окне калькулятора и записали в Image_0
for (int x=0; x<RX; x++) Image_0[x][RY/2]=255;//Закрасили рисунок кнопки в Image_0 горизонтальной линией по середине кнопки
sleep(10);
}


Пример вывода на экран изображения с файла

 Цитата:
int Image_0[300][200];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");

//включили вывод всего изображения Image_0 в координатах 100, 120 экрана без сжатия
visualwindow(0, 0, 0, imagewidth(#Image_0[0][0]), imageheight(#Image_0[0][0]), 100, 120, 100, #Image_0[0][0]);

//включили вывод середины изображения Image_0 (50, 70, 250, 150) в координатах 100, 350 экрана сжав его на 50 процентов
visualwindow(1, 50, 70, 250, 150, 100, 350, 50, #Image_0[0][0]);//включили вывод изображения Image_0 в месте кнопки на экране

loop()sleep(10);



Анимация
 Цитата:
int a[2][100][100];

loadimage (#a[0][0][0], "C:\Users\Вова\Desktop\Image_0.bmp");
loadimage (#a[1][0][0], "C:\Users\Вова\Desktop\Image_1.bmp");

loop()
{
visualwindow (0, 0, 0, imagewidth(#a[0][0][0]), imageheight(#a[0][0][0]), 100, 120, 100 , #a[0][0][0]);
sleep(125);
visualwindow (0, 0, 0, imagewidth(#a[1][0][0]), imageheight(#a[1][0][0]), 100, 120, 100 , #a[1][0][0]);
sleep(125);
}
2. RussianRemaker - 31 Октября, 2014 - 20:34:52 - перейти к сообщению
Хорошая фишка!
На днях болтали в междусобойчике о подобном, а тут на тебе, как-будто мысли телепортировались.
3. konctantin777 - 25 Октября, 2017 - 06:35:05 - перейти к сообщению
Не получается вывести окно мазилы с игрой. В чем ошибаюсь ?

win w=window ("Бои телефонов. Кликер. - Mozilla Firefox", "MozillaWindowClass", -1)
visualwindow(0, 20, 20, 20, 20, 10, 10 , 100, -1);
sleep(10);

Строчка win w взята со шпиона
4. Kibor - 25 Октября, 2017 - 06:42:55 - перейти к сообщению
Ошибка в последнем параметре. и отсутствие точки с запятой..
5. konctantin777 - 25 Октября, 2017 - 07:36:26 - перейти к сообщению
Переделал. Всё равно не работает

win w=window ("Бои телефонов. Кликер. - Mozilla Firefox", "MozillaWindowClass", -1);
visualwindow(0, 20, 20, 20, 20, 10, 10 , 100, w);
sleep(10);
6. Kibor - 25 Октября, 2017 - 07:43:09 - перейти к сообщению
Недостаточно данных.
Предположение..
Браузер свернут.
Открыта вкладка не с тем названием.
На компьютере не установлен стиль аэро, а браузер перерыт.
Этот скрипт не зациклен, поэтому сразу отрабатывает и завершает работу.

Не пишите слово - не работает.
описывайте нормально проблему, иначе будете ждать долго ответ.
(Добавление)
И еще...
Что он должен выводить если зона 0?
20, 20, 20, 20,
начало и конец зоны один и тот же
20, 20, 50, 50,
7. konctantin777 - 25 Октября, 2017 - 09:39:57 - перейти к сообщению
Получилось ! Видимо, не знаю как только, но надо щё понятнее объяснять ))
Кстати в вин 10 аэро нет же ? Т прогу для этого не устанавливал...
8. konctantin777 - 04 Ноября, 2017 - 05:27:34 - перейти к сообщению
Подскажите ещё (не нашел) как искать картинку в неактивном окне ?
9. Kibor - 04 Ноября, 2017 - 06:06:10 - перейти к сообщению
Последний указатель findimage
Сканирование экрана и поиск изображений
10. Zireael - 22 Ноября, 2017 - 04:02:00 - перейти к сообщению
CODE:
win aw=window("Наш бот");//Получаем указатель на наше окно
visualwindow(aw, 0, 0, 0, 100, 100, 5, 5 , 100, -1);//Включаем вывод на нашем окне

А как убрать вывод с диалога? disablevisualwindow отключает, но не убирает.
disablevisualwindow не вставляется в редактор из меню правой кнопки мыши.

Powered by ExBB FM 1.0 Final