я ничего от проги добиться немогу Щас вот просто двойной клик по иконке в координатах 100,50 нифига не получается тока курсор в то место ставиться
mousedbl(left, 100, 50);
sleep (25);
mousedbl(left, 100, 50);
sleep (25);
mouse(left, 100, 50);
sleep (25);
sleep(50); попробовал уже так
(Добавление)
пож напиши простейший скрипт нахождения 1 изображения на любом экране активном текущем и клик по нему мышки
(Добавление)
мне с автоитом проще было чем с кибером но здесь много плюсов
21. shumik - 11 Июля, 2013 - 05:05:08 - перейти к сообщению
22. Kibor - 11 Июля, 2013 - 08:56:45 - перейти к сообщению
shumik пишет:
я ничего от проги добиться немогу Щас вот просто двойной клик по иконке в координатах 100,50 нифига не получается тока курсор в то место ставиться
mousedbl(left, 100, 50);
sleep (25);
mousedbl(left, 100, 50);
sleep (25);
mouse(left, 100, 50);
sleep (25);
sleep(50); попробовал уже так
mousedbl(left, 100, 50);
sleep (25);
mousedbl(left, 100, 50);
sleep (25);
mouse(left, 100, 50);
sleep (25);
sleep(50); попробовал уже так
Естественно...
А если так?
mousedbl(LEFT, 100, 50);
sleep (2500);
mousedbl(LEFT, 100, 50);
sleep (2500);
mouse(LEFT, 100, 50);
sleep (2500);
sleep(50);
Где ты увидел в примере или справке что константа left пишется в маленьком регистре? Будьте внимательны и не будет таких проблем.
Тут даже проще, так как нет необходимости соблюдать установку пробелов, перевод строк и т.д. Даже имена переменных, функций и меток можно писать по русски. Но регистр и правила синтаксиса соблюдать надо.
Сложность языка заключается в изучение функций и их принимаемых параметров. Так же надо понять как работать с указателями на переменные, которых нет в других подобных программах и которые просто незаменимы в некоторых случаях и позволяют реализовать выполнение поставленной задачи не выполняемой в других программах автоматизации.
Но так благодаря этим функциям и указателям и существует возможность реализовать боты приведенные в качестве примеров...
shumik пишет:
напиши простейший скрипт нахождения 1 изображения
Справка на эту тему. Там есть простейший пример и описание
Демострационный скрипт и описание
23. shumik - 12 Июля, 2013 - 12:55:08 - перейти к сообщению
Да с двойным кликом спасибо , мой косяк.
А по определению изображения на экране для меня слишком сложный пример.
Если можно простейший макрос из 2-3 строк на поиск изображения и клик по этим координатам. Чтоб без заморочек с активными окнами было. Заранее спасибо!
(Добавление)
да с калькулятором в примере я уже пробовал всё работает у меня, но не могу по координатам двойной клик мыши сделать что то неправильно делаю.
(Добавление)
я непонимаю смысла всяких скобок, квадратных, фигурных, зачем точки с запятой в конце
(Добавление)
mousedbl(LEFT,PosX_0, PosY_0);
(Добавление)
это из примера с калькулятором 52 ставлю вместо открытия блокнота и пото го ту н
А по определению изображения на экране для меня слишком сложный пример.
Если можно простейший макрос из 2-3 строк на поиск изображения и клик по этим координатам. Чтоб без заморочек с активными окнами было. Заранее спасибо!
(Добавление)
да с калькулятором в примере я уже пробовал всё работает у меня, но не могу по координатам двойной клик мыши сделать что то неправильно делаю.
(Добавление)
я непонимаю смысла всяких скобок, квадратных, фигурных, зачем точки с запятой в конце
(Добавление)
mousedbl(LEFT,PosX_0, PosY_0);
(Добавление)
это из примера с калькулятором 52 ставлю вместо открытия блокнота и пото го ту н
24. Kibor - 12 Июля, 2013 - 14:38:08 - перейти к сообщению
shumik пишет:
Если можно простейший макрос из 2-3 строк на поиск изображения и клик по этим координатам. Чтоб без заморочек с активными окнами было
CODE:
//В этом примере мы допускаем что на экране может быть одно искомое изображение
int Image[26][20];//Масив для записи в него загружаемого рисунка. 26 это ширина изображения, 20 высота.
int PosX[1], PosY[1];//Масивы для записи в них найденых координат левого верхнего угла искомого изображения. Так как ищем изображение в одном экземпляре то объявляем масив на 1.
int k;//В эту переменную запишется возвращаемое значение функции поиска изображений. Она возвращает количество найденых изображений или код ошибки. Код ошибки отрицательное число. Подробнее в справке.
loadimage (#Image[0][0], "C:\Image.bmp");//Загружаем изображение в масив Image
//Ищем одну копию этого изображения на экране. В переменные PosX[0] PosY[0] запишутся координаты левого верхнего угла найденого изображения
k=findimage(1, #Image[0][0], 0, #PosX[0], #PosY[0], 0, 0, 1366, 768, -1);
if (k==1)//Если найдено одно изображение кликаем по нему
{//В фигурных кнопках выполняется код если условие if истина
mousedbl(LEFT, PosX[0]+13, PosY[0]+10);//Кликаем по середине изображения на экране. Клик смещается на половину размеров изображения
}
//В этом примере мы допускаем что на экране может быть одно искомое изображение
int Image[26][20];//Масив для записи в него загружаемого рисунка. 26 это ширина изображения, 20 высота.
int PosX[1], PosY[1];//Масивы для записи в них найденых координат левого верхнего угла искомого изображения. Так как ищем изображение в одном экземпляре то объявляем масив на 1.
int k;//В эту переменную запишется возвращаемое значение функции поиска изображений. Она возвращает количество найденых изображений или код ошибки. Код ошибки отрицательное число. Подробнее в справке.
loadimage (#Image[0][0], "C:\Image.bmp");//Загружаем изображение в масив Image
//Ищем одну копию этого изображения на экране. В переменные PosX[0] PosY[0] запишутся координаты левого верхнего угла найденого изображения
k=findimage(1, #Image[0][0], 0, #PosX[0], #PosY[0], 0, 0, 1366, 768, -1);
if (k==1)//Если найдено одно изображение кликаем по нему
{//В фигурных кнопках выполняется код если условие if истина
mousedbl(LEFT, PosX[0]+13, PosY[0]+10);//Кликаем по середине изображения на экране. Клик смещается на половину размеров изображения
}
CODE:
//В этом примере мы допускаем что на экране может быть до 20 искомых изображений
int Image[26][20];//Масив для записи в него загружаемого рисунка. 26 это ширина изображения, 20 высота.
int PosX[20], PosY[20];//Масивы для записи в них найденых координат левого верхнего угла искомого изображения.
int k;//В эту переменную запишется возвращаемое значение функции поиска изображений. Она возвращает количество найденых изображений или код ошибки. Код ошибки отрицательное число. Подробнее в справке.
loadimage (#Image[0][0], "C:\Image.bmp");//Загружаем изображение в масив Image
//Ищем до 20 копий этого изображения на экране. В масивы переменных PosX PosY запишутся координаты левого верхнего угла найденых изображений
//В PosX[0], PosY[0] координаты первой картинка, в PosX[1], PosY[1] второй и т.д.
k=findimage(20, #Image[0][0], 0, #PosX[0], #PosY[0], 0, 0, 1366, 768, -1);//Ищем все копии этого изображения на экране.
if (k>0)//Если нашлось хоть одно изображение перебираем в цикле все координаты и кликаем по ним по очереди
{//В фигурных кнопках выполняется код если условие if истина
int n=0;
a: if (n<k)
{//В фигурных кнопках выполняется код если n<k
mousedbl(LEFT, PosX[n]+13, PosY[n]+10);//Кликаем по середине изображения на экране. Клик смещается на половину размеров изображения
n++;
goto a;
}
}
//В этом примере мы допускаем что на экране может быть до 20 искомых изображений
int Image[26][20];//Масив для записи в него загружаемого рисунка. 26 это ширина изображения, 20 высота.
int PosX[20], PosY[20];//Масивы для записи в них найденых координат левого верхнего угла искомого изображения.
int k;//В эту переменную запишется возвращаемое значение функции поиска изображений. Она возвращает количество найденых изображений или код ошибки. Код ошибки отрицательное число. Подробнее в справке.
loadimage (#Image[0][0], "C:\Image.bmp");//Загружаем изображение в масив Image
//Ищем до 20 копий этого изображения на экране. В масивы переменных PosX PosY запишутся координаты левого верхнего угла найденых изображений
//В PosX[0], PosY[0] координаты первой картинка, в PosX[1], PosY[1] второй и т.д.
k=findimage(20, #Image[0][0], 0, #PosX[0], #PosY[0], 0, 0, 1366, 768, -1);//Ищем все копии этого изображения на экране.
if (k>0)//Если нашлось хоть одно изображение перебираем в цикле все координаты и кликаем по ним по очереди
{//В фигурных кнопках выполняется код если условие if истина
int n=0;
a: if (n<k)
{//В фигурных кнопках выполняется код если n<k
mousedbl(LEFT, PosX[n]+13, PosY[n]+10);//Кликаем по середине изображения на экране. Клик смещается на половину размеров изображения
n++;
goto a;
}
}
shumik пишет:
непонимаю смысла всяких скобок, квадратных, фигурных, зачем точки с запятой в конце
В квадратных скобках указывается размерность масивов, переменные. в фигурные заключается код который должен выполниться после if else при соблюдение истинности условий: логика
Так же в фигурные скобки заключается код отдельной вызываемой функции: функции
Точка с запятой означает конец строки (команды). В отличие от подобных программ в Кибор возможно записать одну длинную команду в несколько строк:
st: if (findimage(-1, #Image[0][0], 16777215,
#x[0], #y[0], 0, 2, wind.widthclient, wind.heightclient, wind)<1)goto st;
Этот код равносилен:
st: if (findimage(-1, #Image[0][0], 16777215, #x[0], #y[0], 0, 2, wind.widthclient, wind.heightclient, wind)<1)goto st;
Или несколько коротких в одну:
s: if (a<5){a++; goto s;}
Этот код равносилен:
s:
if (a<5)
{
a++;
goto s;
}
shumik пишет:
mousedbl(LEFT,PosX_0, PosY_0);
mousedbl(LEFT,PosX_0[0], PosY_0[0]);
25. shumik - 18 Июля, 2013 - 07:44:11 - перейти к сообщению
спасибо большое с этим разобрался вроде Теперь немогу
int Image_1[3][1];
int Image_0[3][1];
int PosX_0[1], PosY_0[1];
int PosA_0[1], PosS_0[1];
int k;
int f;
int n;
loadimage (#Image_0[0][0], "C:\Image_0.bmp"
loadimage (#Image_1[0][0], "C:\Image_1.bmp"
int color, xe, ye;
getdisplay(color, xe, ye);
n:
k=findimage(1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, xe, ye, -1);
if (k==1);
{
mousedbl(LEFT,PosX_0[0], PosY_0[0]) ;
sleep(900);
goto n ;
}
f=findimage(1, #Image_1[0][0], 255, #PosA_0[0], #PosS_0[0], 0, 0, xe, ye, -1);
if (f==1);
{
mousedbl(LEFT,PosA_0[0], PosS_0[0]);
sleep(900);
goto n ;
}
sleep(900);
goto n;
(Добавление)
немогу разобраться как с двумя и более разными изображениями разбираться?
int Image_1[3][1];
int Image_0[3][1];
int PosX_0[1], PosY_0[1];
int PosA_0[1], PosS_0[1];
int k;
int f;
int n;
loadimage (#Image_0[0][0], "C:\Image_0.bmp"
loadimage (#Image_1[0][0], "C:\Image_1.bmp"
int color, xe, ye;
getdisplay(color, xe, ye);
n:
k=findimage(1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, xe, ye, -1);
if (k==1);
{
mousedbl(LEFT,PosX_0[0], PosY_0[0]) ;
sleep(900);
goto n ;
}
f=findimage(1, #Image_1[0][0], 255, #PosA_0[0], #PosS_0[0], 0, 0, xe, ye, -1);
if (f==1);
{
mousedbl(LEFT,PosA_0[0], PosS_0[0]);
sleep(900);
goto n ;
}
sleep(900);
goto n;
(Добавление)
немогу разобраться как с двумя и более разными изображениями разбираться?
26. Kibor - 18 Июля, 2013 - 12:54:20 - перейти к сообщению
shumik пишет:
if (k==1);
{
{
shumik пишет:
if (f==1);
{
{
Ошибка. После if (k==1) и if (f==1) не надо ставить точку с запятой. Логические операции
shumik пишет:
int Image_1[3][1];
int Image_0[3][1];
int Image_0[3][1];
Рисунки имеют размер 3 на 1 пикселей?
shumik пишет:
int n;
shumik пишет:
n:
shumik пишет:
goto n ;
Зачем тут объявлена переменная n? Тем более что такое же имя имеет метка перехода что не допускается. Метки не могут иметь одинаковые имена с переменными.
Исправить эти ошибки и должно работать.
Код:
CODE:
int Image_1[3][1];
int Image_0[3][1];
int PosX_0[1], PosY_0[1];
int PosA_0[1], PosS_0[1];
int k;
int f;
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
loadimage (#Image_1[0][0], "C:\Image_1.bmp");
int color, xe, ye;
getdisplay(color, xe, ye);
n:
k=findimage(1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, xe, ye, -1);
if (k==1)
{
mousedbl(LEFT,PosX_0[0], PosY_0[0]) ;
sleep(900);
goto n ;
}
f=findimage(1, #Image_1[0][0], 255, #PosA_0[0], #PosS_0[0], 0, 0, xe, ye, -1);
if (f==1)
{
mousedbl(LEFT,PosA_0[0], PosS_0[0]);
sleep(900);
goto n ;
}
sleep(900);
goto n;
int Image_1[3][1];
int Image_0[3][1];
int PosX_0[1], PosY_0[1];
int PosA_0[1], PosS_0[1];
int k;
int f;
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
loadimage (#Image_1[0][0], "C:\Image_1.bmp");
int color, xe, ye;
getdisplay(color, xe, ye);
n:
k=findimage(1, #Image_0[0][0], 255, #PosX_0[0], #PosY_0[0], 0, 0, xe, ye, -1);
if (k==1)
{
mousedbl(LEFT,PosX_0[0], PosY_0[0]) ;
sleep(900);
goto n ;
}
f=findimage(1, #Image_1[0][0], 255, #PosA_0[0], #PosS_0[0], 0, 0, xe, ye, -1);
if (f==1)
{
mousedbl(LEFT,PosA_0[0], PosS_0[0]);
sleep(900);
goto n ;
}
sleep(900);
goto n;
27. shumik - 18 Июля, 2013 - 14:53:11 - перейти к сообщению
спасибо Агромное!
28. Kibor - 18 Июля, 2013 - 15:22:54 - перейти к сообщению
Пожалуйста
29. sicosha - 25 Июля, 2013 - 08:22:46 - перейти к сообщению
Здравствуйте! Подскажите пожалуйста:
Как мне реализовать печать в блокнот, того что посчитано в боте?
например стратегия Маргтингейла. Если проиграешь, то умножаешь ставку на 2. Если выиграешь - к начальной ставке. С определениями выигрыша\проигрыша я разобрался, осталось понять как печатать результат из бота.
Как мне реализовать печать в блокнот, того что посчитано в боте?
например стратегия Маргтингейла. Если проиграешь, то умножаешь ставку на 2. Если выиграешь - к начальной ставке. С определениями выигрыша\проигрыша я разобрался, осталось понять как печатать результат из бота.
30. Kibor - 25 Июля, 2013 - 10:16:36 - перейти к сообщению
sicosha пишет:
Как мне реализовать печать в блокнот, того что посчитано в боте?
Преобразовать число в string: как преобразовать int или double к string
Затем:
Можно так. Дописывает текст:
CODE:
win w=window ("Безымянный — Блокнот", "Notepad", -1);//Указатель блокнот
int result=12345;//Число которое надо напечатать
key("Результат = "+format(result),1, 1, w);
int result=12345;//Число которое надо напечатать
key("Результат = "+format(result),1, 1, w);
Можно в свернутое окно блокнота. Работает только со свернутым окном и меняет весь текст:
CODE:
win w=window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));//Указатель на поле для ввода текста блокнота
int result=123456;//Число которое надо напечатать
sendtext("Результат = "+format(result), w);
int result=123456;//Число которое надо напечатать
sendtext("Результат = "+format(result), w);
Можно выбрать другой способ тут:Нажатие кнопок клавиатуры