Val_027 |
Отправлено: 06 Февраля, 2020 - 15:19:20
|
Участник
Покинул форум
Сообщений всего: 114
Дата рег-ции: Февр. 2020
Репутация: 0
|
n2:win w2=window("туткино окно Windows"
if(w2!=0)activate(w2);
else
{sleep (500);goto n2;}
w2.leftclient = 0;
w2.topclient = -5;
w2.widthclient = 1920;
w2.heightclient = 1058;
activate(w2);
moveclient(w2); //нашел выставил до этого все норм
int Image[250][250];
int X[1],Y[1];
loadimage (#Image[0][0],"L:\1.bmp"
int color, xe, ye;
getdisplay(color, xe, ye);
n:if( findimage(1,#Image[0][0],0,#X[0],#Y[0],200,200,1000,1000,w2)>0);
// вот на этом варианте пока что остановился не ищет.
// если картинку совсем небольшую ищу пикселей 25*25 то типа находит но явно не то
// или крут по кругу бегает не находит. Подскажите как с этим бороться /искать/.
// через UIpilot раньше искал находил, типа какой о опыт есть а тут никак беда....
//n:if(findimage(1,#Image[0][0],0,#X[0],#Y[0],700,700,990,999,99,99,99,99,99,99,90,1,w2)>0);
//n: if (findimage(1, #Image[0][0],0,#X[0],#Y[0],700,700,990,999,25,25,25,25,25,25,90,1,w2)>0);
//n: if(findimage(1,#Image[0][0],0,#X[0], #Y[0],800,700,1000,1000,w2)==0);
//n: if (findimage(1, #Image[0][0], 255, #X[0], #Y[0], 0, 0, xe, ye, -1)==0);
{sleep(100);goto n;}
//mousemove(946,967,w2);
mousemove(X[0], Y[0],w2);
messagebox(X[0]);
//findimage(-1, #image[0][0], fon_color, #x[0], #y[0], x_start, y_start, x_finish, y_finish, wind);
//Второй - указатель на масив int в котором хранится искомое изображение.
//Третий - фоновый цвет который не учитывается при сравнение изображений. Если указать -1, все цвета учитываются. В виде фонового цвета можно указать цвет конкретного пикселя искомой картинки - image[0][0] (цвет левого верхнего пикселя)... и т.д.
//Четвертый и пятый - указатели на одномерные масивы int, в которые будут сохранены координаты найденых в окне изображений.
//Шестой и седьмой - стартовые клиентские координаты в окне в котором ищется изображение относительно верхнего левого угла.
//Восьмой и девятый - клиентские координаты окончания поиска в окне в котором ищется изображение.
//Десятый - указатель на окно в котором ищем изображение. При -1 ищется по всему экрану.
//n:if(findimage(1,#Image[0][0],0,#X[0],#Y[0],700,700,990,999,99,99,99,99,99,99,90,1,w2)>0);
//findimage(1, #Image_0[0][0], 0, #X[0],#Y[0], 0, 0, 1366, 768, 20, 50, 50, 70, 10, 20, 33, 1, -1);
//Ищем изображение совпавшее хотя бы на одну треть от того что ищем с колебаниями ДО:
//меньше на 20 - больше на 50 (красный), меньше на 50 - больше на 70 (Зеленый), меньше на 10 - больше на 20 (Синий).
//(для просмотра ссылки Вам необходимо авторизоваться) |
|
|
Zireael |
Отправлено: 07 Февраля, 2020 - 09:26:22
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Поиск картинки:
CODE:int Image[99][99]; // массив для картинки размером 99*99 или меньше
loadimage (#Image[0][0], "D:\Kibor2\Image_0.bmp"); // загрузить картинку
int coord[4]={0, 0, 1920, 1080} // область поиска
int r = 10; // отклонение в цвете от 0 до 255
int p = 100; // точность поиска,
int X, Y; // переменные для координат
win w=window ("Program Manager", "Progman", -1); // окно
if(w) // если окно найдено
{
if(findimage(1, #Image[0][0], -1, #X, #Y, coord[0], coord[1], coord[2], coord[3], r,r,r,r,r,r,p,1,w)) // поиск
{
messagebox("Картинка найдена");
mousemove(X+coord[0], Y+coord[1]); // навести курсор
}
else messagebox("Картинка не найдена");
} |
|
|
Val_027 |
Отправлено: 07 Февраля, 2020 - 14:20:57
|
Участник
Покинул форум
Сообщений всего: 114
Дата рег-ции: Февр. 2020
Репутация: 0
|
Вот что в итоге.
1 этап.
win w2=window(тут у нас контрол кому что надо);
if(w2!=0)goto AUT;
else
{messagebox("НЕТУ ОКНА/ЭКРАНА"}
AUT:activate(w2);
w2.leftclient = 0;
w2.topclient = -5;
w2.widthclient = 1920;
w2.heightclient = 1058;
moveclient(w2); // ОКНО МЕСТО !
sleep (300);
savescreen("L:\!_KIB\START\ВЫБРАТЬ.bmp",917,967,950,978,w2);//координаты в окне что сохраняем.
start("L:\!_KIB\START\ВЫБРАТЬ.bmp" //куда сохраняем
//ОЧЕНЬ УДОБНО видишь что и откуда сохраняешь
2 этап.
n2:win w2=window("конторл", "тук", -1);
if(w2!=0)goto AUT; //сперва нашли запуск окна
else
{sleep (500);goto n2;}
AUT:activate(w2);
w2.leftclient = 0;
w2.topclient = -5;
w2.widthclient = 1920;
w2.heightclient = 1058;
moveclient(w2); // ОКНО МЕСТО ! выставили как надо
int Image[50][50];// СЛЕДИТЬ ЗА МЕСТОМ ПОД bmp
int X[1],Y[1];
loadimage (#Image[0][0],"L:\!_KIB\START\ВЫБРАТЬ.bmp"
n:if(findimage(1,#Image[0][0],0,#X[0],#Y[0],917,967,950,978,w2)!=0)goto AUT1;
// 917,967,950,978 координаты поиска в окне
else
{sleep(100);goto n;} //
AUT1:
sleep(100);
int X1=X[0]+935 ;
int Y1=Y[0]+970;
mousemove(X1,Y1,w2);// МЕСТО ТЫКА чтоб понятно уже было что танцуем где надо
sleep(600);
messagebox("НАШЛИ"
а дальше уже можно вставлять в основное тело наших мучений
ЕЩЕ РАЗ СПАСИБО !!!
Буду рад всяким замечаниям...
Скоро надо будет в окнах перекрытых тыкать может есть что подсказать просто понятным кодом чего либо.
(Добавление)
Zireael пишет: int coord[4]={0, 0, 1920, 1080} // область поиска
Вот как раз об этом думал у меня 2 монитора как выделить 1н из них . |
|
|
Zireael |
Отправлено: 07 Февраля, 2020 - 15:33:35
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: надо будет в окнах перекрытых тыкать может есть что подсказать просто понятным кодом чего либо.
CODE:win w=window (-1, "Edit", window (-1, "Notepad", -1)); // окно блокнота
sendmouse(LEFT, 66, 82, w); // клик левой кнопкой мыши
Цитата: у меня 2 монитора как выделить 1н из них .
Если второй монитор справа от первого, то координаты первого: 0 0 1920 1080, второго 1920 0 3840 1080. |
|
|
Val_027 |
Отправлено: 07 Февраля, 2020 - 15:41:29
|
Участник
Покинул форум
Сообщений всего: 114
Дата рег-ции: Февр. 2020
Репутация: 0
|
Zireael пишет: монитор
Подскажите ! плиз можно ли шрифт редактора киборга увеличить/ очень все мелко при таком разрешении экрана как у меня/ . Help лупой смотреть не айс. Всякие варианты масштабирования винды минус ток киборга.(Отредактировано автором: 07 Февраля, 2020 - 15:42:44) |
|
|
|