sakr1dd |
Отправлено: 06 Октября, 2013 - 11:48:31
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Kibor пишет:
Ищем относительно зеленого контакта
Цитата: int Image_1[100][100];
if (loadimage (#Image_1[0][0], "C:\Image_1.bmp")>0)messagebox("Image_1 Congr");//Зеленая тамка это
else messagebox ("Image_1 nooo");
int Image_2[100][100];
if (loadimage (#Image_2[0][0], "C:\Image_2.bmp")>0)messagebox("Image_2 Congr");
else messagebox ("Image_2 nooo");
int PosX_K, PosY_K;//Координаты рамки зеленой
int PosX, PosY;//Координаты галки
if (findimage(1, #Image_1[0][0], фоновый_цвет_красный, #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1)//Нашли зеленую рамку
{
//Ищется галка начиная от PosX_K, PosY_K (левый верхний угол рамки)
if (findimage(1, #Image_2[0][0], 0, #PosX, #PosY, PosX_K, PosY_K, 1366, 768, -1)==1)
{
mousemove(PosX, PosY);
mouse(LEFT);
}
}
Спасибо большое,с этим разобрался,интересует еще кое что,можно ли перемещать зажатую кнопку мыши наводя ее на некую картинку,тоесть мне надо чтобы ползунок всегда перетаскивался вверх,но место откуда и до куда его надо перетаскивать меняется |
|
|
sakr1dd |
Отправлено: 06 Октября, 2013 - 12:52:40
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Kibor пишет: sakr1dd пишет: можно ли перемещать зажатую кнопку мыши наводя ее на некую картинку
mousetransfer
Лучше ползунок перемещать клавой если работает такой сдвиг ползунка.
Что-то не получается никак найти стрелочку от зеленой рамки,как сделать красный фоновый цвет? Просто закрасить? И выдает ошибкуCODE: if (findimage(1, #Image_1[0][0] , #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1) ,когда вписываю фоновый_цвет_красный,помогите распутаться)(Отредактировано автором: 06 Октября, 2013 - 12:54:03) |
|
|
Kibor |
Отправлено: 06 Октября, 2013 - 13:04:21
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
sakr1dd пишет: выдает ошибку
if (findimage(1, #Image_1[0][0] , #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1)
,когда вписываю фоновый_цвет_красный
фоновый_цвет_красный - псевдокод.
Когда создаете рисунок в редакторе кибор, выделите именно саму рамку зеленую, без середины - квадратный бублик...
Выберите в палитре в том ж редакторе фоновый цвет красный.
Сохраните рисунок этого бублика через кибор.
Фоновый цвет сам все не выделенное заполнит в bmp.
В геренерируемой loadimage автоматом напишется этот красный цвет фона.
Сканер графического интерфейса
Поиск изображений на экране
Читайте еще раз. |
|
|
sakr1dd |
Отправлено: 06 Октября, 2013 - 13:05:31
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
как бы по коду все ясно что и как будет делатся,но выдает ошибку
Kibor пишет: Ответ постом выше
(Добавление)
Спасибо,понял,зеленый квадратный бублик с красной начинкой сделанной в киборе
Сделал все как надо,мышку переводит не туда куда надо,картинку распознает,что-то не так с #PosX, #PosY, PosX_K, PosY_K
(Добавление)
|
|
|
sakr1dd |
Отправлено: 06 Октября, 2013 - 13:39:16
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
CODE:int Image_0[100][100];
if (loadimage (#Image_0[0][0], "C:\Prog\A6.bmp")>0)messagebox("Image_1 Congr");
else messagebox ("Image_1 nooo");
int Image_1[100][100];
if (loadimage (#Image_1[0][0], "C:\Prog\A7.bmp")>0)messagebox("Image_2 Congr");
else messagebox ("Image_2 nooo");
int PosX_K, PosY_K;//?????????? ????? ???????
int PosX, PosY;//?????????? ?????
if (findimage(1, #Image_0[0][0],255, #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1
{
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, PosX_K, PosY_K, 1366, 768, -1)==1)
{
mousemove(PosX, PosY);
mouse(LEFT);
sleep (2000);
}
} (Отредактировано автором: 06 Октября, 2013 - 13:40:37) |
|
|
Kibor |
Отправлено: 06 Октября, 2013 - 13:48:25
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
sakr1dd пишет: int Image_0[100][100];
if (loadimage (#Image_0[0][0], "C:\Prog\A6.bmp")>0)messagebox("Image_1 Congr");
else messagebox ("Image_1 nooo");
int Image_1[100][100];
if (loadimage (#Image_1[0][0], "C:\Prog\A7.bmp")>0)messagebox("Image_2 Congr");
else messagebox ("Image_2 nooo");
int PosX_K, PosY_K;//?????????? ????? ???????
int PosX, PosY;//?????????? ?????
if (findimage(1, #Image_0[0][0],255, #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1)Пропуск скобки
{
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, PosX_K, PosY_K, 1366, 768, -1)==1)
{
mousemove(PosX, PosY);
mouse(LEFT);
sleep (2000);
}
} |
|
|
sakr1dd |
Отправлено: 06 Октября, 2013 - 22:04:27
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Проблема не в этом,т.к. это ошибка была допущена когда я убирал комментарии ваши,просто они были в виде "????????? ????",сейчас пробую запустить с точно такими же параметрами как и было но сейчас даже мышь не перемещается.. что-то не так
(Добавление)
Сообщение выше не совсем точное,не работала потому что стрелочку сделал не правильную,переделал вроде бы заработала,но тем не менее наводит все равно куда-то в угол экрана
(Добавление)
Совершенно случайно,пробуя все варианты все таки получилось решить проблему,ошибка была в этой строчке
CODE:if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, 0,0, 1366, 768, -1)==1)
вместо 0 стояли PosX_K,PosY_K |
|
|
Kibor |
Отправлено: 06 Октября, 2013 - 22:39:23
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
sakr1dd пишет: ошибка была в этой строчке
CODE:
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, 0,0, 1366, 768, -1)==1)
вместо 0 стояли PosX_K,PosY_K
Там не ошибка...
Это специально ограниченно начало поиска на экране левым верхним углом рамки зеленой...
Просто надо так теперь координаты указывать
mousemove(PosX+PosX_K, PosY+PosY_K);
Поскольку в PosX, PosY находятся координаты относительно PosX_K,PosY_K(координаты начала поиска)
Вот так:
Цитата: int Image_0[100][100];
if (loadimage (#Image_0[0][0], "C:\Prog\A6.bmp")>0)messagebox("Image_1 Congr");//Зеленая рамка
else messagebox ("Image_1 nooo");
int Image_1[100][100];
if (loadimage (#Image_1[0][0], "C:\Prog\A7.bmp")>0)messagebox("Image_2 Congr");//Галка
else messagebox ("Image_2 nooo");
int PosX_K, PosY_K;
int PosX, PosY;
if (findimage(1, #Image_0[0][0],255, #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1)
{
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, PosX_K, PosY_K, 1366, 768, -1)==1)
{
mousemove(PosX+PosX_K, PosY+PosY_K);
mouse(LEFT);
sleep (2000);
}
}
Я пропустил...
(Добавление)
Если поставить 0, 0 замест PosX_K, PosY_K опять искаться будет первая галка которая не нужна. |
|
|
|