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

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

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

> Без описания
Zireael
Отправлено: 08 Декабря, 2019 - 03:16:57
Post Id



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


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




https://drive.google.com/open?id...u6lmS4cXIdDYzaFJ
В архиве длл и примеры использования. Саму длл закинуть в папку с кибор.

Длл позволяет рисовать на экране некоторые фигуры и текст.
Все объекты выводятся поверх всех окон. Отображаются в порядке их первого вызова, т. е. если сначала вывели текст, а поверх него нарисовали прямоугольник, то текста не будет видно, потому что текст будет закрашен.
Функции достаточно вызвать 1 раз, они будут работать до их отключения. Можно вызывать их повторно, если требуется изменить какие-то параметры.

Остановка скрипта кибор не приведёт в отключению вывода, убрать с экрана нарисованные объекты можно:
1. Вызвать функцию disable_item(), потом можно включить отключенные объекты.
2. Вызвать функцию end_paint(), все объекты уничтожаются.
3. Нажать Ctrl+Alt+Z, тоже самое что вызов end_paint().
4. Закрыть кибор.


Функции:
begin_paint - начать рисовать
end_paint - закончить рисовать
rectangle - нарисовать на экране прямоугольник
circle - нарисовать окружность
ellipse - нарисовать эллипс
line - нарисовать линию
textout - вывести текст
image - вывести картинку из bmp файла
enable_item - включить отображение объекта
disable_item - отключить отображение объекта

Параметры функций:
CODE:
begin_paint(); // вызывается без параметров
end_paint(); // вызывается без параметров


CODE:
rectangle(0, 100, 10, 250, 100, 0, 5, 255, 16633191, 0, 0); // прямоугольник

1 - порядковый номер от 0 до 999
2-5 - координаты, левый верхний угол и правый нижний
6 - тип линии контура: 0 - сплошная, 1 - тире, 2 - точки, 3 - чередующиеся тире и точки, 4 - чередующиеся тире и две точки, 5 - невидимый
7 - толщина контура
8 - цвет контура
9 - цвет фона, если -1, то фон будет прозрачным
10 - 11 - ширина и высота радиусов углов

CODE:
circle(0, 100, 100, 40, 0, 5, 255, 16633191); // окружность

1 - порядковый номер от 0 до 999
2 - центр окружности по X
3 - центр окружности по Y
4 - радиус окружности
5 - тип линии контура (см. описание rectangle)
6 - толщина контура
7 - цвет контура
8 - цвет фона, если -1, то фон будет прозрачным

CODE:
ellipse(0, 100, 100, 180, 160, 0, 4, 255, 16633191); // эллипс

1 - порядковый номер от 0 до 999
2-5 - координаты, левый верхний угол и правый нижний
6 - тип линии контура
7 - толщина контура
8 - цвет контура
9 - цвет фона, если -1, то фон будет прозрачным

CODE:
line(0, 100, 20, 300, 20, 0, 4, 255); // линия

1 - порядковый номер от 0 до 999
2-5 - координаты, левый верхний угол и правый нижний
6 - тип линии контура
7 - толщина линии
8 - цвет линии

CODE:
Textout(3, 100, 350, "Текст Text", 65280, 255, "Arial", -24, 0,0,0,0,1,0,0); // текст

1 - порядковый номер от 0 до 999
2 - координата X
3 - координата Y
4 - текст
5 - цвет текста
6 - цвет фона, если -1, то фон прозрачный
7 - имя шрифта
8 - размер шрифта
9 - расстояние между символами
10 - угол наклона текста
11 - хз за что отвечает, см. описание CreateFontA winapi
12 - толщина символов, от 0 до 900
13 - курсив, 0|1
14 - подчёркнутый, 0|1
15 - зачёркнутый, 0|1

CODE:
image(0, 200, 50, 200, "C:\123.bmp", -1); // изображение

1 - порядковый номер от 0 до 999
2 - координата X
3 - координата Y
4 - масштаб в процентах
5 - путь к изображению в формате bmp, функция вернёт -1 если изображение не найдено
6 - цвет, который считается прозрачным. Если -1, то выводит картинку как есть.

CODE:
disable_item("rectangle", 2); // отключение отображения объекта

1 - какой объект не требуется отображать: "rectangle", "circle", "ellipse", "line", "textout", "image".
2 - порядковый номер объекта. Если -1, то отключит отображение всех объектов указанного типа.

CODE:
enable_item("rectangle", 2); // включение отображения объекта

1 - какой объект требуется отобразить, если ранее он был отключен: "rectangle", "circle", "ellipse", "line", "textout", "image".
2 - порядковый номер объекта. Если -1, то включит отображение всех, ранее отключенных, объектов указанного типа.


Если будут баги или надо что-то изменить/добавить, пишите может доделаю.
 
 Top
007wan
Отправлено: 08 Декабря, 2019 - 09:07:25
Post Id



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


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




Почему мне кажется, что это где-то есть? Зачем изобретать велосипед заного? Не сомненно эти функции проще в использовании , например, не придется расчитывать ширину прямоугольника, высчитывая начальные и конечные координаты.
Помоги лучше придумать как указать стиль диалогу, что бы его края были острые, а кнопки Закрыть, Свернуть и др, не пропадали.
 
 Top
Zireael
Отправлено: 23 Января, 2020 - 15:18:11
Post Id



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


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




https://drive.google.com/open?id..._dS7Ii7iHbOKg3bO
Исправил передачу параметров с виде string.
Теперь все функции возвращают INT, а не VOID.
CODE:
external(INT, "begin_paint", "begin_paint", pathfolder()+"Draw.dll");
external(INT, "Textout", "textout", pathfolder()+"Draw.dll");

string s="Tahoma";
begin_paint();

Textout(0, 50, 0, "Остановить скрипт Ctrl+Shift+Z", 16000000, 65280, "Arial", -28, 0,0,0,0,0,0,0);
Textout(1, 50, 40, "Отключить вывод текста Ctrl+Alt+Z", 255, 65280, "Arial", -28, 0,0,0,0,0,0,0);

int x=0;
loop()
{
Textout(2, 100, 170, s+" "+format(x), 255, 65279, s, -24, 0,0,0,0,0,0,0);
x++;
sleep(50);
}
 
 Top
Kutuz_off
Отправлено: 05 Февраля, 2020 - 19:45:25
Post Id



Пользователь
Наблюдатель


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




Теперь натолкнулся на следующую проблему: не обрабатываются вводные переменные типа double.

пример:
rectangle(254, S_X0+GSf_cbTX0+12*s_d, S_Y0+GSf_cbTY0+15*s_d, S_X0+GSf_cbTX0 +120*s_d, S_Y0+GSf_cbTY0 +40*s_d, 0, 1, 772211, -1, 0, 0);

- функция ничего не выводит, пока не убрать *s_d. Файл поменял, VOID сменил на INT. - не помогло. (s_d типа double)

(Отредактировано автором: 05 Февраля, 2020 - 20:00:28)

 
 Top
Zireael
Отправлено: 05 Февраля, 2020 - 20:19:24
Post Id



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


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




 Цитата:
s_d типа double

Функции принимают int.
CODE:
int S_X0 = 10;
int GSf_cbTX0 = 10;
double s_d = 5.2;
messagebox(S_X0+GSf_cbTX0+12*s_d);

Нужно так:
CODE:
int S_X0 = 10;
int GSf_cbTX0 = 10;
double s_d = 5.2;
int result=S_X0+GSf_cbTX0+12*s_d; // присвоить результат переменной int
messagebox(result); // потом передавать в функцию
 
 Top
Kutuz_off
Отправлено: 06 Февраля, 2020 - 11:10:52
Post Id



Пользователь
Наблюдатель


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




Кажется, не хватает расширить буфер под цвет. Не съедает самые яркие тона.

Не работает:
rectangle(248, _LO_X0, _LO_Y0, _LO_X1, _LO_Y1, 0, 1, 15790320, -1, 0, 0); // показать обл поиска
(цвет брал пипеткой кибора)

Работает:
rectangle(248, _LO_X0, _LO_Y0, _LO_X1, _LO_Y1, 0, 1, 14790320, -1, 0, 0); // показать обл поиска

...

Хотя нет... - остальные работают. Цвет невидимости что ли?)
(это серый цвет, взят с краешка окна кибора)

(Отредактировано автором: 06 Февраля, 2020 - 11:19:57)

 
 Top
Zireael
Отправлено: 06 Февраля, 2020 - 11:24:54
Post Id



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


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




 Цитата:
15790320

Это системный цвет фона диалога при стандартной теме винды. rgb(240, 240,240).
 Цитата:
COLOR_3DFACE - Face color for three-dimensional display elements and for dialog box backgrounds.

Рисование происходит на диалоге, который поверх всех окон. Да, этот цвет прозрачный.
 
 Top
ivantu
Отправлено: 18 Ноября, 2020 - 12:31:56
Post Id



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


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




А есть возможность выводить на окно, т.е. не поверх всех окон?
 
 Top
Zireael
Отправлено: 18 Ноября, 2020 - 13:23:23
Post Id



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


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




 Цитата:
А есть возможность выводить на окно, т.е. не поверх всех окон?

Нет.
 
 Top
Denci
Отправлено: 08 Июня, 2021 - 13:02:24
Post Id



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


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




Помогите, пожалуйста. Что я делаю не так? Требуется следующее: нужно выделить мышкой по диагонали с верхнего левого угла область с рисованием прямоугольника (область нужна для определения в ней чего-либо). Появились две проблемы. Первая - при работе скрипта в самом Киборе, начинаются какие-то лаги (черный экран несколько секунд, нехватка ОЗУ и т.п.). Вторая - при запуске exe-файла данного скрипта, программа вылетает, хотя draw.dll в папке есть (там где лежит exe-файл). Или как можно решить данную задачу как-то по-другому (штатными средствами Кибор, или без применения данной библиотеки)?
CODE:
external(VOID, "begin_paint", "begin_paint", pathfolder()+"Draw.dll");
external(VOID, "end_paint", "end_paint", pathfolder()+"Draw.dll");
external(VOID, "rectangle", "rectangle", pathfolder()+"Draw.dll");
int x,y,x1=0,y1=0,x2=0,y2=0,flag=0;
povtor:
if (getkeystate(LBUTTON)==1){//если нажата ЛКМ
getmouse(x, y);//получить текущие координаты мыши
if (flag==0){x1=x;y1=y;flag=1;}//получить начальные координаты прямоугольника
else{x2=x;y2=y;}//конечные координаты прямоугольника (изменяются при перемещении мыши)
begin_paint(); //начать отрисовку прямоугольника
rectangle(0, x1, y1, x2, y2, 0, 3, 255, -1, 0, 0);
pause(50);}
else {flag=0;end_paint();} //завершить отрисовку
goto povtor;
//далее нужно записать координаты в текстовый файл,
//чтобы можно при следующем запуске программы их считать
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Готовые скрипты »


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




Powered by