Kibor |
Отправлено: 17 Мая, 2021 - 19:51:05
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
konctantin777 пишет: При зажатой шифт должен размер блока меняться ? Не меняется..
Должен.
Делаете как на видео?
Что происходит отличного как на видео?
Курсор меняется при нажатие шифта?
konctantin777 пишет: Может можно хотя бы комент к блокам сделать
Почти сделал. Еще один штрих и выложу.
(Добавление)
konctantin777 пишет: Дальше тест застопорился, что в блоке поиска картинки нет разбежности цвета....
Вы пробовали разобраться как делать свои шаблоны? |
|
|
konctantin777 |
Отправлено: 17 Мая, 2021 - 19:53:21
|
Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Kibor пишет: Вы пробовали разобраться как делать свои шаблоны?
Пробовал... Печально это для меня, скажу я вам )
(Добавление)
Kibor пишет: При зажатой шифт должен размер блока меняться ? Не меняется..
Должен.
Делаете как на видео?
Что происходит отличного как на видео?
Курсор меняется при нажатие шифта?
Разобрался. Быстро проскакивает границу- не замечал, что менялся на как обычный у винды |
|
|
Kibor |
Отправлено: 17 Мая, 2021 - 22:36:34
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Обновил.
Надо скачать архив с новыми шаблонами.
В функцию GET добавил функцию регулярного выражения regexsearch
Возвращает часть строки согласно условиям регулярного выражения.
Пример:
CODE:~GET(regexsearch("C:\Image_0.bmp", "(?<=\\)(.*)+(?=\.)"))~
Первый параметр функции regexsearch строка в которой ищем.
Второй - регулярное выражение.
Вместо этой команды вставится Image_0, поскольку по условиям регулярного выражения будет найдена эта часть строки.
Первый и второй параметры могу быть как в кавычках, так и без.
Если в кавычках - они игнорируются.
-----
Так же может быть третий параметр в regexsearch.
Число, соответствующее значению одной или сумме значений нескольких констант:
CODE:IGNORECASE=8
SINGLELINE=1
MULTILINE=2
GLOBAL=4
RIGHTTOLEFT=16
EXTENDED=32
Описание констант -(для просмотра ссылки Вам необходимо авторизоваться)
Пример:
IGNORECASE
CODE:~GET(regexsearch("C:\Image_0.bmp", "(?<=\\)(.*)+(?=\.)", 8))~
IGNORECASE+MULTILINE
CODE:~GET(regexsearch("C:\Image_0.bmp", "(?<=\\)(.*)+(?=\.)", 10))~
===================================================
Добавил раздел [INFO] в шаблон Блоков.
Его назначение указать какая информация будет выведена в Блок в Визуальную схему в виде текста.
Данная информация добавляется сразу после названия функции или шаблона, который идет сейчас в Блоке вверху.
Синтаксис:
CODE:[INFO]
[ENDL]>>~GET(regexsearch(~Path~, "(?<=\\)(.*)+(?=\.)"))~>>[ENDL]>>Comment
[END]
[ENDL] - Перевод строки.
>> - Разделение параметров.
Пример использования этого раздела в шаблоне FindImage
CODE:[INFO]
[ENDL]>>~GET(regexsearch(~Path~, "(?<=\\)(.*)+(?=\.)"))~>>[ENDL]>>Comment
[END]
[ASSOC_VAR]
Path="C:\Image_0.bmp";
I=0;
Kol = 1;
eX1=0;
eY1=0;
eX2=1024;
eY2=768;
X = X_Kib;
Y = Y_Kib;
K = K_Kib;
X_V = #~X~[~I~];
Y_V = #~Y~[~I~];
K_V = #~K~;
Image = #Image~*~;
Comment=;
[END]
Означает что в Блок будет выведена информация:
FindImage
перевод строки.
Название файла, вырезанное с переменной Path согласно регулярному выражению.
перевод строки.
Комментарий (если есть.) (В шаблон добавлен EDIT с переменной Comment)
==================================
Пример как добавить имя функции в шаблоне Function
CODE:[INFO]
>>" ">>Fun
[END]
[ASSOC_VAR]
Fun = NameFun;
Fun_V= function ~%32~ ~Fun~;
Par=int~%32~A,~%32~int~%32~B;
[END]
---------------------------------------======================
Это дает возможность разработчику Блока программировать любой вывод информации в Блок.
Пример:
(Добавление)
konctantin777 пишет: Собрал код- нет функций, которые прописаны в блоках кода
Естественно.
Блоки, к которым нет переходов не участвуют в работе программы. Они игнорируются.
Данный код функций надо оформить в блоках Function так же в виде блоков кода, только без
(Добавление)
В шаблон Code добавил EDIT для комментариев.
В файлах сохраненных надо заменить
+Code=
на
+Comment=;Code= |
|
|
Kibor |
Отправлено: 18 Мая, 2021 - 16:46:21
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Обновил программу и архив.
Добавил более проработанные шаблоны
FindImage Mouse Key
Позволяют выбирать настройки работы с экраном или фоновый режим.
Небольшое пояснение к функции findimage Кибор
CODE:findimage(SWIFT*g1, kol, #image[0][0], -1, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, -1)
g1 это галка. Может принимать 0 или 1. В зависимости от этого умножение на 0 или 1 включает или отключает быстрый режим.
Если параметры r=0 и proc=100, вызывается функция поиска без разбежности.
Если надо работать с указателем, его можно инициализировать в блоке Старт:
CODE:W_Kib=window (-1, "MozillaWindowClass", -1);
Или указать свое имя переменной.
В отличие от старого редактора, в новом генерируемая функция должна содержать в себе реализацию всех режимов, которые выбираются настройками.
Код FindImage
код (Отобразить)CODE:[ESCAPE_CHAR]
^
[END]
[APPEARANCE]
COLOR = 0, 0, 100;
SIZE_X = 14;
SIZE_Y =6;
[END]
[INTERFACE]
DIALOG, "Поиск изображения", 637, 353;
STATIC, "Поиск в", 4, 4, 44, 20;
COMBO, "Активный по Экрану""Активный по Указателю""Фоновый по Указателю", 52, 4, 160, 80, int EW;
STATIC, "Указатель на окно", 220, 4, 100, 20;
EDIT, 332, 4, 296, 20, win W;
STATIC, "Пауза до:", 4, 28, 52, 20;
EDIT, 60, 28, 100, 20, int P1;
STATIC, "Время ожидания", 4, 52, 92, 20;
EDIT, 100, 52, 100, 20, int T;
STATIC, "Путь к файлу", 4, 76, 72, 20;
EDIT, 80, 76, 452, 20, string Path;
BUTTON_FILE, "Путь к файлу", 536, 76, 92, 20, Path;
STATIC, "Сколько искать", 4, 100, 84, 20;
EDIT, 92, 100, 52, 20, int Kol;
STATIC, "Зона поиска старт", 4, 124, 100, 20;
EDIT, 108, 124, 100, 20, int eX1;
EDIT, 212, 124, 100, 20, int eY1;
STATIC, "Зон поиска финиш", 320, 124, 100, 20;
EDIT, 424, 124, 100, 20, int eX2;
EDIT, 528, 124, 100, 20, int eY2;
STATIC, "Разбежность оттенков", 4, 148, 124, 20;
EDIT, 132, 148, 64, 20, int R;
STATIC, "Процент совпадения", 208, 148, 112, 20;
EDIT, 324, 148, 64, 20, int Proc;
CHECK, "Быстрый поиск", 404, 148, 100, 20, int G1;
STATIC, "Переменные: Количество", 4, 172, 140, 20;
EDIT, 148, 172, 72, 20, int K;
STATIC, "X", 232, 172, 12, 20;
EDIT, 248, 172, 72, 20, int X;
STATIC, "Y", 332, 172, 16, 20;
EDIT, 352, 172, 72, 20, int Y;
STATIC, "Заполнять массив с индекса", 428, 172, 152, 20;
EDIT, 584, 172, 44, 20, int I;
STATIC, "Пауза после нахождения", 4, 196, 132, 20;
EDIT, 140, 196, 100, 20, int P2;
STATIC, "Действие если нашли", 4, 220, 120, 20;
COMBO, "Левую клик""Среднюю клик""Правую клик""Левую нажать""Среднюю нажать""Правую нажать""Левую отпустить""Среднюю отпустить""Правую отпустить""Левая двойной клик""Средняя двойной клик""Правая двойной клик""Переместить""Бездействие", 128, 220, 224, 116, string M;
STATIC, "Смещение клика X", 368, 220, 100, 20;
EDIT, 472, 220, 48, 20, int SmX;
STATIC, "Y", 532, 220, 12, 20;
EDIT, 548, 220, 48, 20, int SmY;
STATIC, "Пауза после действия, если было", 4, 244, 176, 20;
EDIT, 184, 244, 100, 20, int P3;
STATIC, "Комментарий", 4, 268, 76, 20;
EDIT, 84, 268, 544, 20, unknown Comment;
BUTTON_OK, "Принять", 416, 304, 100, 20;
BUTTON_CANCEL, "Закрыть", 528, 304, 100, 20;
[END]
[INFO]
[ENDL]>>~GET(regexsearch(~Path~, "(?<=\\)(.*)+(?=\.)"))~>>[ENDL]>>M>>[ENDL]>>Comment
[END]
[ASSOC_NUMBER]
Path
[END]
[ASSOC_VAR]
EW=0;
W=W_Kib;
P1=0;
T=0;
Path="C:\Image_0.bmp";
R=0;
Proc=100;
G1=0;
P2=0;
M="Бездействие";
SmX=0;
SmY=0;
P3=0;
I=0;
Kol = 1;
eX1=0;
eY1=0;
eX2=1024;
eY2=768;
X = X_Kib;
Y = Y_Kib;
K = K_Kib;
X_V = #~X~[~I~];
Y_V = #~Y~[~I~];
K_V = #~K~;
W_V = #~W~;
Image = #Image~*~;
Comment=;
[END]
[GLOBAL_VAR]
win ~W~;
int ~K~, ~X~[1000], ~Y~[1000];
int Image~*~[~GET(imagewidth(~Path~))~][~GET(imageheight(~Path~))~];
[END]
[GLOBAL_REPEAT_CODE]
loadimage(#Image~*~[0][0], ~Path~);
[END]
[FUNCTION_BODY]
function(int ew, win #w, int #image, int kol, int #mK, int #mX, int #mY, int ex1, int ey1, int ex2, int ey2, int p1, int t, int r, int proc, int g1, int p2, string m, int smx, int smy, int p3)
{
pause (p1);
if (t==0)t=1;
looptime(t)
{
if (ew==0)mK=findimage(SWIFT*g1, kol, #image[0][0], -1, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, -1);
else mK=findimage(SWIFT*g1, kol, #image[0][0], -1, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, w);
if (mK>0) break;
sleep(5);
}
if (mK<1) return mK;
pause (p2);
if (ew==0)
{
if (m=="Левую клик"){mouse(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Переместить"){mousemove(ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
}
if (ew==1)
{
if (m=="Левую клик"){mouse(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Переместить"){mousemove(w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
}
if (ew==2)
{
if (m=="Левую клик"){sendmouse(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Среднюю клик"){sendmouse(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правую клик"){sendmouse(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Левую нажать"){sendmousedown(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Среднюю нажать"){sendmousedown(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правую нажать"){sendmousedown(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Левую отпустить"){sendmouseup(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Среднюю отпустить"){sendmouseup(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правую отпустить"){sendmouseup(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Левая двойной клик"){sendmousedbl(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Средняя двойной клик"){sendmousedbl(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правая двойной клик"){sendmousedbl(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Переместить")sendmousemove(ex1+smx+mX[0], ey1+smy+mY[0], w);
}
hy: if (m!="Бездействие")pause (p3);
return mK;
}
[END]
[CALL]
(EW, W_V, Image[0][0], Kol, K_V, X_V, Y_V, eX1, eY1, eX2, eY2, P1, T, R, Proc, G1, P2, M, SmX, SmY, P3)
[END]
[FUNCTION_LOGIC]
>0
[END]
Код Mouse
код (Отобразить)CODE:[APPEARANCE]
COLOR = 0, 100, 0;
SIZE_X = 8;
SIZE_Y =6;
[END]
[INTERFACE]
DIALOG, "Мышь", 446, 201;
STATIC, "Поиск в", 4, 4, 44, 20;
COMBO, "Активный по Экрану""Активный по Указателю""Фоновый по Указателю", 52, 4, 164, 80, int EW;
STATIC, "Указатель на окно", 228, 4, 100, 20;
EDIT, 332, 4, 104, 20, win W;
STATIC, "Пауза до", 4, 28, 52, 20;
EDIT, 60, 28, 156, 20, int P1;
STATIC, "Координты", 4, 52, 60, 20;
EDIT, 68, 52, 72, 20, int X;
EDIT, 144, 52, 72, 20, int Y;
STATIC, "Действие", 4, 76, 56, 20;
COMBO, "Левую клик""Среднюю клик""Правую клик""Левую нажать""Среднюю нажать""Правую нажать""Левую отпустить""Среднюю отпустить""Правую отпустить""Левая двойной клик""Средняя двойной клик""Правая двойной клик""Переместить""Бездействие", 68, 76, 148, 72, string M;
STATIC, "Пауза после", 4, 100, 68, 20;
EDIT, 76, 100, 140, 20, int P2;
STATIC, "Комментарий", 4, 124, 76, 20;
EDIT, 84, 124, 352, 20, unknown Comment;
BUTTON_OK, "Принять", 228, 152, 100, 20;
BUTTON_CANCEL, "Закрыть", 336, 152, 100, 20;
[END]
[INFO]
[ENDL]>>M>>[ENDL]>>Comment
[END]
[ASSOC_VAR]
EW=0;
W=W_Kib;
P1=0;
X =0;
Y = 0;
M="Левую клик";
P2=0;
Comment=;
[END]
[GLOBAL_VAR]
win ~W~;
[END]
[FUNCTION_BODY]
function(int ew, win w, int p1, int x, int y, string m, int p2)
{
pause(p1);
if (ew==0)
{
if (m=="Левую клик"){mouse(LEFT, x, y); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, x, y); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, x, y); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, x, y); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, x, y); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, x, y); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, x, y); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, x, y); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, x, y); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, x, y); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, x, y); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, x, y); goto hy;}
if (m=="Переместить"){mousemove(x, y); goto hy;}
}
if (ew==1)
{
if (m=="Левую клик"){mouse(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Переместить"){mousemove(w.leftclient+x, w.topclient+y); goto hy;}
}
if (ew==2)
{
if (m=="Левую клик"){sendmouse(LEFT, x, y, w); goto hy;}
if (m=="Среднюю клик"){sendmouse(MIDDLE, x, y, w); goto hy;}
if (m=="Правую клик"){sendmouse(RIGHT, x, y, w); goto hy;}
if (m=="Левую нажать"){sendmousedown(LEFT, x, y, w); goto hy;}
if (m=="Среднюю нажать"){sendmousedown(MIDDLE, x, y, w); goto hy;}
if (m=="Правую нажать"){sendmousedown(RIGHT, x, y, w); goto hy;}
if (m=="Левую отпустить"){sendmouseup(LEFT, x, y, w); goto hy;}
if (m=="Среднюю отпустить"){sendmouseup(MIDDLE, x, y, w); goto hy;}
if (m=="Правую отпустить"){sendmouseup(RIGHT, x, y, w); goto hy;}
if (m=="Левая двойной клик"){sendmousedbl(LEFT, x, y, w); goto hy;}
if (m=="Средняя двойной клик"){sendmousedbl(MIDDLE, x, y, w); goto hy;}
if (m=="Правая двойной клик"){sendmousedbl(RIGHT, x, y, w); goto hy;}
if (m=="Переместить")sendmousemove(x, y, w);
}
hy: if (m!="Бездействие")pause (p2);
}
[END]
[CALL]
(EW, W, P1, X, Y, M, P2)
[END]
Код Key
код (Отобразить)CODE:[APPEARANCE]
COLOR = 0, 100, 0;
SIZE_X = 8;
SIZE_Y =6;
[END]
[INTERFACE]
DIALOG, "Клавиатура", 446, 201;
STATIC, "Поиск в", 4, 4, 44, 20;
COMBO, "Активный по Экрану - Указателю""Фоновый по Указателю", 52, 4, 164, 80, int EW;
STATIC, "Указатель на окно", 228, 4, 100, 20;
EDIT, 332, 4, 104, 20, win W;
STATIC, "Пауза до", 4, 28, 52, 20;
EDIT, 60, 28, 156, 20, int P1;
STATIC, "Код клавиши", 4, 52, 68, 20;
EDIT, 76, 52, 140, 20, int C;
STATIC, "Действие", 4, 76, 56, 20;
COMBO, "Клик" "Нажать" "Отпустить", 68, 76, 148, 72, string K;
STATIC, "Пауза после", 4, 100, 68, 20;
EDIT, 76, 100, 140, 20, int P2;
STATIC, "Комментарий", 4, 124, 76, 20;
EDIT, 84, 124, 352, 20, unknown Comment;
BUTTON_OK, "Принять", 228, 152, 100, 20;
BUTTON_CANCEL, "Закрыть", 336, 152, 100, 20;
[END]
[INFO]
[ENDL]>>C>>[ENDL]>>K>>[ENDL]>>Comment
[END]
[ASSOC_VAR]
EW=0;
W=W_Kib;
P1=0;
C=0;
K="Клик";
P2=0;
Comment=;
[END]
[GLOBAL_VAR]
win ~W~;
[END]
[FUNCTION_BODY]
function(int ew, win w, int p1, int c, 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 (ew==1)
{
if (k=="Клик"){sendkey(c, w); goto hy;}
if (k=="Нажать"){sendkeydown(c, w); goto hy;}
if (k=="Отпустить"){sendkeyup(c, w); goto hy;}
}
hy: pause (p2);
}
[END]
[CALL]
(EW, W, P1, C, K, P2)
[END]
Код полученный со схемы (Отобразить)CODE:#define NULL 0
win W_Kib;
int K_Kib;
int X_Kib[1000];
int Y_Kib[1000];
int Image0[9][9];
int N;
string Text;
external(INT, "MessageBoxA", "MessageBoxA", "user32.dll");
win w=window (-1, "MozillaWindowClass", -1);
pause(1000);
loadimage(#Image0[0][0], "C:\Image_0.bmp");
loadsymbolbase("C:\basetext.sib");
goto KIB_5;
KIB_4:;
goto KIB_Exit;
KIB_5: for(N=0; N<15; N++)
{
goto KIB_1;
KIB_2: Mouse(0, w, 0, X_Kib[0]+50, Y_Kib[0]+5, "Левую клик", 200);
Key(0, w, 0, 65, "Клик", 200);
goto KIB_C5;
KIB_1: if (FindImage(0, #w, #Image0[0][0], 1, #K_Kib, #X_Kib[0], #Y_Kib[0], 0, 0, 1024, 768, 0, 0, 50, 100, 1, 0, "Переместить", 50, 5, 0)>0) goto KIB_2;
goto KIB_4;
KIB_C5:
}
ReadText(0, w, 0, "C:\basetext.sib", #Text, 1, 1, 0, 0, 480, 400, 737, 445);
MessageBoxA(NULL, Text, "Заголовок", NULL);
KIB_Exit:;
function FindImage(int ew, win #w, int #image, int kol, int #mK, int #mX, int #mY, int ex1, int ey1, int ex2, int ey2, int p1, int t, int r, int proc, int g1, int p2, string m, int smx, int smy, int p3)
{
pause (p1);
if (t==0)t=1;
looptime(t)
{
if (ew==0)mK=findimage(SWIFT*g1, kol, #image[0][0], -1, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, -1);
else mK=findimage(SWIFT*g1, kol, #image[0][0], -1, #mX[0], #mY[0], ex1, ey1, ex2, ey2, r, r, r, r, r, r, proc, 1, w);
if (mK>0) break;
sleep(5);
}
if (mK<1) return mK;
pause (p2);
if (ew==0)
{
if (m=="Левую клик"){mouse(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
if (m=="Переместить"){mousemove(ex1+smx+mX[0], ey1+smy+mY[0]); goto hy;}
}
if (ew==1)
{
if (m=="Левую клик"){mouse(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
if (m=="Переместить"){mousemove(w.leftclient+ex1+smx+mX[0], w.topclient+ey1+smy+mY[0]); goto hy;}
}
if (ew==2)
{
if (m=="Левую клик"){sendmouse(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Среднюю клик"){sendmouse(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правую клик"){sendmouse(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Левую нажать"){sendmousedown(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Среднюю нажать"){sendmousedown(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правую нажать"){sendmousedown(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Левую отпустить"){sendmouseup(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Среднюю отпустить"){sendmouseup(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правую отпустить"){sendmouseup(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Левая двойной клик"){sendmousedbl(LEFT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Средняя двойной клик"){sendmousedbl(MIDDLE, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Правая двойной клик"){sendmousedbl(RIGHT, ex1+smx+mX[0], ey1+smy+mY[0], w); goto hy;}
if (m=="Переместить")sendmousemove(ex1+smx+mX[0], ey1+smy+mY[0], w);
}
hy: if (m!="Бездействие")pause (p3);
return mK;
}
function Mouse(int ew, win w, int p1, int x, int y, string m, int p2)
{
pause(p1);
if (ew==0)
{
if (m=="Левую клик"){mouse(LEFT, x, y); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, x, y); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, x, y); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, x, y); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, x, y); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, x, y); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, x, y); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, x, y); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, x, y); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, x, y); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, x, y); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, x, y); goto hy;}
if (m=="Переместить"){mousemove(x, y); goto hy;}
}
if (ew==1)
{
if (m=="Левую клик"){mouse(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Среднюю клик"){mouse(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правую клик"){mouse(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Левую нажать"){mousedown(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Среднюю нажать"){mousedown(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правую нажать"){mousedown(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Левую отпустить"){mouseup(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Среднюю отпустить"){mouseup(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правую отпустить"){mouseup(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Левая двойной клик"){mousedbl(LEFT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Средняя двойной клик"){mousedbl(MIDDLE, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Правая двойной клик"){mousedbl(RIGHT, w.leftclient+x, w.topclient+y); goto hy;}
if (m=="Переместить"){mousemove(w.leftclient+x, w.topclient+y); goto hy;}
}
if (ew==2)
{
if (m=="Левую клик"){sendmouse(LEFT, x, y, w); goto hy;}
if (m=="Среднюю клик"){sendmouse(MIDDLE, x, y, w); goto hy;}
if (m=="Правую клик"){sendmouse(RIGHT, x, y, w); goto hy;}
if (m=="Левую нажать"){sendmousedown(LEFT, x, y, w); goto hy;}
if (m=="Среднюю нажать"){sendmousedown(MIDDLE, x, y, w); goto hy;}
if (m=="Правую нажать"){sendmousedown(RIGHT, x, y, w); goto hy;}
if (m=="Левую отпустить"){sendmouseup(LEFT, x, y, w); goto hy;}
if (m=="Среднюю отпустить"){sendmouseup(MIDDLE, x, y, w); goto hy;}
if (m=="Правую отпустить"){sendmouseup(RIGHT, x, y, w); goto hy;}
if (m=="Левая двойной клик"){sendmousedbl(LEFT, x, y, w); goto hy;}
if (m=="Средняя двойной клик"){sendmousedbl(MIDDLE, x, y, w); goto hy;}
if (m=="Правая двойной клик"){sendmousedbl(RIGHT, x, y, w); goto hy;}
if (m=="Переместить")sendmousemove(x, y, w);
}
hy: if (m!="Бездействие")pause (p2);
}
function Key(int ew, win w, int p1, int c, 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 (ew==1)
{
if (k=="Клик"){sendkey(c, w); goto hy;}
if (k=="Нажать"){sendkeydown(c, w); goto hy;}
if (k=="Отпустить"){sendkeyup(c, w); goto hy;}
}
hy: pause (p2);
}
function ReadText(int ew, win w, int p1, string base, string #text, int g1, int g2, int g3, int g4, int ex1, int ey1, int ex2, int ey2)
{
disablesymbolbase(ALL);
enablesymbolbase(base);
pause(p1);
if (ew==0)readtext (g1*RU | g2*EN | g3*NUM | g4*MARK, #text, 8, 1, -1, -1, -1, -1, -1, 0, 50, ex1, ey1, ex2, ey2, -1);
else readtext (g1*RU | g2*EN | g3*NUM | g4*MARK, #text, 8, 1, -1, -1, -1, -1, -1, 0, 50, ex1, ey1, ex2, ey2, w);
}
Тема закрыта! Продолжение в теме "Новый Визуальный редактор - 2".
|
|
|
|