grBIN |
Отправлено: 15 Декабря, 2017 - 16:40:51
|
Наблюдатель
Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017
Откуда: Псков
Репутация: 2
|
Привет, есть предложение немного доработать функционал шпиона, нужно тупо для удобства.
При нажатии ctrl+shft+s шпион запоминает координаты 1 точки, рисует точку на экране - по типу функции textout
Теперь при нажатии ctrl+shift+D шпион запоминает 2 точку, и рисует прямоугольник с координатам 1 и 2 точки.
А так-же отрисовывает точку в центре этого прямоугольника.
Если после первого нажатия ctrl+shft+s, мы нажимаем ctrl+shft+s еще раз, рисует точку на новых координатах.
Ну и допустим после отрисовки квадрата с точкой, кидает все данные в буфер обмена,
Таким образом за 2 клика мышью мы сразу получим нужные координаты для клика (центр прямоугольника)
а так же координаты его верхнего левого угла и нижнего правого, с помощью которых легко вычислим данные для рандома.
Закинул пример в скриншоте. В принципе сам скрипт запилить много времени не займет, особенное если вы сделаете саму функцию отрисовки на экране, по типу функции textout
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
На всякий раз повторюсь, такой функционал нужен только для экономии времени на этой рутине, таким образом мы в 2 клика мышкой получим нужные координаты, причем мы отчетливо видим куда бот кликнет без рандома, и в какую область он кликнет если поставим рандом. |
|
|
Zireael |
Отправлено: 15 Декабря, 2017 - 18:57:27
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Навели курсор в точку1 нажали Ё, навели в точку2 нажали Ё. Начать заново Esc. Выводит экранные координаты. Собрать в exe, запускать от админа.
code (Отобразить)CODE:int x, y, x1, y1, x2, y2;
loop()
{
resettextout(1);
disablevisualwindow(0);
disablevisualwindow(1);
disablevisualwindow(2);
disablevisualwindow(3);
while (getkeystate(192) == 0) // ждём нажатия ё
{
sleep(10);
}
getmouse(x,y);
textout(0, x, y, format(x)+" "+format(y), 2);
sleep(500);
while (getkeystate(192) == 0) // ждём нажатия ё
{
sleep(10);
}
getmouse(x1,y1);
textout(1, x1, y1, format(x1)+" "+format(y1), 2);
x2 = x1 - (x1-x) / 2; y2 = y1 - (y1-y) / 2;
textbkcolor(255, 16777215);
textout(2, x2, y2, format(x2)+" (±"+format((x1-x)/2)+")"+" "+format(y2)+" (±"+format((y1-y)/2)+")", 2);
// вывод рамки
int a[1920][1], b[1][1080];
x2 = x1 - (x1-x) / 2;
y2 = y1 - (y1-y) / 2;
for(int i=0;i<x1-x;i++)
{
a[i][0]=255;
}
for(i=0;i<y1-y;i++)
{
b[0][i]=255;
}
enablevisualwindow(0);
enablevisualwindow(1);
enablevisualwindow(2);
enablevisualwindow(3);
visualwindow (0, 0, 0, x1-x, 1, x, y, 100, #a[0][0]);
visualwindow (1, 0, 0, 1, y1-y, x1, y, 100, #b[0][0]);
visualwindow (2, 0, 0, x1-x, 1, x, y1, 100, #a[0][0]);
visualwindow (3, 0, 0, 1, y1-y, x, y, 100, #b[0][0]);
while (getkeystate(27) == 0) // ждём нажатия Esc
{
sleep(10);
}
} |
|
|
grBIN |
Отправлено: 15 Декабря, 2017 - 19:46:54
|
Наблюдатель
Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017
Откуда: Псков
Репутация: 2
|
Zireael пишет: Навели курсор в точку1 нажали Ё, навели в точку2 нажали Ё. Начать заново Esc. Выводит экранные координаты. Собрать в exe, запускать от админа.
code (Отобразить)CODE:int x, y, x1, y1, x2, y2;
loop()
{
resettextout(1);
disablevisualwindow(0);
disablevisualwindow(1);
disablevisualwindow(2);
disablevisualwindow(3);
while (getkeystate(192) == 0) // ждём нажатия ё
{
sleep(10);
}
getmouse(x,y);
textout(0, x, y, format(x)+" "+format(y), 2);
sleep(500);
while (getkeystate(192) == 0) // ждём нажатия ё
{
sleep(10);
}
getmouse(x1,y1);
textout(1, x1, y1, format(x1)+" "+format(y1), 2);
x2 = x1 - (x1-x) / 2; y2 = y1 - (y1-y) / 2;
textbkcolor(255, 16777215);
textout(2, x2, y2, format(x2)+" (±"+format((x1-x)/2)+")"+" "+format(y2)+" (±"+format((y1-y)/2)+")", 2);
// вывод рамки
int a[1920][1], b[1][1080];
x2 = x1 - (x1-x) / 2;
y2 = y1 - (y1-y) / 2;
for(int i=0;i<x1-x;i++)
{
a[i][0]=255;
}
for(i=0;i<y1-y;i++)
{
b[0][i]=255;
}
enablevisualwindow(0);
enablevisualwindow(1);
enablevisualwindow(2);
enablevisualwindow(3);
visualwindow (0, 0, 0, x1-x, 1, x, y, 100, #a[0][0]);
visualwindow (1, 0, 0, 1, y1-y, x1, y, 100, #b[0][0]);
visualwindow (2, 0, 0, x1-x, 1, x, y1, 100, #a[0][0]);
visualwindow (3, 0, 0, 1, y1-y, x, y, 100, #b[0][0]);
while (getkeystate(27) == 0) // ждём нажатия Esc
{
sleep(10);
}
}
воу, спасибо, сам думал начинать писать что то подобное, но не знал как реализовать показ графики, может сделаем темку в подфоруме готовых скриптов, с подобными полезными решениями? |
|
|
|