Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: bulgachevarada on October 20, 2017, 04:11:20 PM
-
Доброго дня помогите пожалуйста с макросом надо реализовать поиск иконки кнопки репоста в вк через картинку и нажатие на нее, так как записи бывают разного размера картинку надо искать по всей странице в невидимой части экрана в том числе где без прокрутки не добраться возможно ли как то проще это сделать? или прокрутку обязательно и как вообще написать макрос, чтоб картинка находилась по любому цвету выставить диапазон неограниченный, так как цвет изменится если уже сделан был репост, а кнопку надо находить несколько раз не обновляя страницу...
И второе как если нашел такую страницу просто остановить макрос или повторять действие пока картинка не будет найдена с определенным интервалом. Спасибо. Заранее прошу прощения если повтор, но из всех тем что нашла никак не получалось реализовать, возможно из за смены цветовых гамм картинки
-
Доброго дня. Как вариант, кнопку можно закрепить в нужном месте видимой части сайта. Потребуется установить расширение для браузера типа Stylish. Пример из прошлой темы http://crapware.aidf.org/forum/index.php?topic=3143.msg21149#msg21149
-
Для борьбы с изменяющейся графикой применяй цветокоррекцию
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT
Нужно вырезать из этого скриншота картинку рупора.
Вот цикл поиска картинки. Если не найдено прокручиваем страницу. цикл ограничен 20ю секундами, если за это время не найдет то цикл завершится, если найдет то кликаем и завершаем цикл.
$time = $_time_t + 20 // таймер на 20 секунд
WHILE($time > $_time_t)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 70) // поиск картинки с 70% процентов совпадения
$time = 0
LCLICK($_return1+2, $_return2+2)
WAITMS(100)
ELSE
WHEELDOWN
WAITMS(500)
END_IF
END_CYC
А вот как выглядит поиск двух картинок "1.bmp" или "2.bmp"
$time = $_time_t + 10 // таймер на 20 секунд
WHILE($time > $_time_t)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 80)
$time = 0
LCLICK($_return1+2, $_return2+2)
WAITMS(100)
ELSE
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 80)
$time = 0
LCLICK($_return1+2, $_return2+2)
WAITMS(100)
ELSE
WHEELDOWN
WAITMS(500)
END_IF
END_IF
END_CYC
-
Для борьбы с изменяющейся графикой применяй цветокоррекцию
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT
Нужно вырезать из этого скриншота картинку рупора.
Вот цикл поиска картинки. Если не найдено прокручиваем страницу. цикл ограничен 20ю секундами, если за это время не найдет то цикл завершится, если найдет то кликаем и завершаем цикл.
$time = $_time_t + 20 // таймер на 20 секунд
WHILE($time > $_time_t)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 70) // поиск картинки с 70% процентов совпадения
$time = 0
LCLICK($_return1+2, $_return2+2)
WAITMS(100)
ELSE
WHEELDOWN
WAITMS(500)
END_IF
END_CYC
А вот как выглядит поиск двух картинок "1.bmp" или "2.bmp"
$time = $_time_t + 10 // таймер на 20 секунд
WHILE($time > $_time_t)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 80)
$time = 0
LCLICK($_return1+2, $_return2+2)
WAITMS(100)
ELSE
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 80)
$time = 0
LCLICK($_return1+2, $_return2+2)
WAITMS(100)
ELSE
WHEELDOWN
WAITMS(500)
END_IF
END_IF
END_CYC
Спасибо большое! все проделую, но не ищет ничего почему то, скрин через COLORMODE(6), открываю через пейнт выделяю рупор уменьшаю оставляя только нужный єлемент сохраняя в том же формате как бы просто сохранить все указываю как вы описали прокрутка идет а фотку никак не находит, уже и браузера меняла все никак в чем может быть проблема? изменяю процент на меньше ловит все подрят и текст но не то что надо...(
-
Вот что остается от страницы после применения css стилей...
(https://s8.hostingkartinok.com/uploads/images/2017/10/6802be7e04d6685edb130ae8e7b9939a.png) (https://hostingkartinok.com/show-image.php?id=6802be7e04d6685edb130ae8e7b9939a)
На картинке каждый пиксель в красной полоске это ссылка на которую нужно кликать (рупор). Синий кружок добавляет ссылки из невидимой части страницы сайта. Это как бы прокрутка страницы. После первого клика по кружку можно жмякать пробел. Если ссылок на странице много, то красная полоска будет расти, построчно заполняя всю страницу и далее. Я выбрал страницу где очень много ссылок, даже не знаю сколько, устал прокручивать пробелом и бросил. На моем мониторе с разрешением 1440x900 уместится больше миллиона таких ссылок. Если отключить в браузере загрузку изображений, то это еще больше облегчит жизнь компу и Кликерману. Стили прилагаю.
[spoiler=Стили для ВК]#page_layout, #page_body {
margin: 0;
padding: 0;
width: 100% !important;
}
.page_header_cont, .side_bar, .page_block, .post_header, .wall_text, .post_full_like > a:not([class="post_share _share_wrap "]), .replies, .post_views, .post_share_count, .blind_label, .post_share_icon._icon {
display: none;
}
._post.post.page_block.all.own {
box-shadow: none;
margin: 0;
}
.wall_posts.own {
display: flex;
flex-wrap: wrap;
margin: 5px;
width: 100vw;
}
.tt_w {
display: none !important;
}
.wall_posts.own > div * {
margin: 0;
padding: 0;
}
.post_full_like_wrap {
border: none;
}
.post_share {
background: #FF00DC;
border-radius: 0;
height: 1px;
width: 1px;
}
#wall_more_link {
background: blue;
border-radius: 50%;
color: transparent;
height: 10px;
margin: 5px;
overflow: hidden;
padding: 0;
width: 10px;
}
[/spoiler]
-
//GETSCREEN
//COLORMODE(7)
//SCREENSHOTEX(99,90, 107,97, "vge7", 0)
//HALT
THREAD(name, 1)
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
END_IF
END_THREAD
THREAD(name, 2)
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
END_IF
END_THREAD
\\===============================
IF(pxl(55, 22) = 777)
$_return1+2
$y = $_return2+2
print( " +")
//postmessage($hwnd, 0x0200, 0, $xp + ($yp*65536))
WAITMS(rnd(100,200))
postmessage($hwnd, 0x0201, 0x0001, $x + ($y*65536))
postmessage($hwnd, 0x0202, 0x0000, $x + ($y*65536))
ELSE
END_IF
кусочек себе ре и я спать