Как сделать кликер в блокноте

Добавил пользователь Владимир З.
Обновлено: 09.10.2024

Помогите новичку понять вот это
SendMessage(hWnd,WM_LBUTTONDOWN,wPa ram,lParam)
я так понял эта строка посылает окну с hWnd действие WM_LBUTTONDOWN по координатам wParam тоисть х и lParam тоисть y так? но как использовать его в коде я не очень знаю. Задача у меня следущая, программа должна открывать блокнот, каждую 1-2 секунды, там будут две цыфри(координаты клика которые будут меняться в зависимости от того что происходит в браузере), тогда надо кликнуть в браузере по этим координатам, но главное условие кликер должен работать себе, а я себе. кто поможет хоть чем нибудь?)

Могу порекомендовать ВУЗы где тебе можно учиться после школы )
А теперь флуд:
1) Начни с того, что научишься читать данные из блокнота. Забудь про кликер
2) Работать тебе и себе у тебя не получится, а точнее себе и тебе не все могут работать. Вернее, работать могут не только лишь все, но мало кто может это делать.
Однако выход есть - виртуальные машины. Но это тебе будет слишком сложно, поэтому начинай осваивать первый пункт, а дальше видно будет

Всем привет, продолжаем изучать автоматизацию на основе программируемого автокликера.

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Начнём с подпрограмм, что это и зачем они нужны.

Подпрограмма это список действий, который будет часто повторяться в вашей программе, но не обязательно подряд. Например, мы используем такие действия (пока напишем в псевдокоде):

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

при этом подразумевается, что вам нужно сделать так с множеством страниц, например 20 штук.
Если бы нам нужно было поставить лайки только на одной странице, мы бы обернули действия в цикл и нам бы этого хватило.

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Но что если нужно открывать другие страницы, а может, между делом совершать совсем другие действия (публиковать пост, писать комментарии и т.д.) Тогда имеет смысл выделить наш участок кода в отдельную функцию.

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

SUB(имяФункции) - определяет начало функции, общепринято все функции выносить на самый верх программы, либо выносить в отдельный файл, но это необязательно и больше для красоты, расскажу об этом в одном из следующих постов.

Имя функции определяете вы сами, старайтесь задать такое, чтобы вам было понятно, что делает эта функция, например ставит лайки в вк - VKLikes, ищет в эксель нужную строку - ExcelFindString и т.д.

END_SUB - соответственно обозначает конец вашей подпрограммы(функции).

Теперь вы можете в любой момент вызвать вашу функцию таким образом - имяФункции()

Почему это удобно? Представим, что вам потребовалось ставить лайк не на каждый пост, а на каждый второй, теперь вам придется проходить по всей вашей программе, искать каждый момент где вы ставите лайк и менять там, добавлять ещё одну прокрутку, если же это у вас выведено в отдельную функцию, вам достаточно поменять это один раз в одном месте. Удобно? а то! Ну и отдельный плюс - сокращение вашего кода. Совсем недавно я изменил свой скрипт, изначально я писал его просто как список действий, без подпрограмм, это заняло у меня 2200 строк, после *рефакторинга скрипт стал занимать 700.

*рефакторинг - процесс улучшения кода без внесения новых возможностей.

Также важной возможностью является передача в вашу функцию какого-либо параметра, который менял бы исполнение этой функции в зависимости от значения переменной.

Вот участок моей реальной программы:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Да, ваш скрипт может целиком выглядеть как вызов различных функций, это нормально и даже очень хорошо. Я передаю в функцию TWPersonalPost переменную, которая имеет значение от 1 до 10, в зависимости от этого, функция открывает тот лист Excel с которого мне нужно скопировать информацию:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Тогда в названии вашей программы нужно указать переменную, например SUB(VKlikes, $name)

и внутри подпрограммы с помощью команд IF или SWITCH сделать различные действия в зависимости от значения переменной.

Анализ экрана

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Анализ экрана позволяет добавить в вашу программу ту самую вариативность исполнения, программа будет менять исполнение действий в зависимости от происходящего на экране (вот мы и добрались до создания собственного искусственного интеллекта. ну почти)

для этого clickermann представляет нам множество функций, главной из которой является GETSCREEN.

GETSCREEN - делает снимок экрана и помещает его в буфер для анализа, буквально это print screen. Мы можем сделать как снимок всего экрана, так и снимок определенной области, зачем? Ну это немного ускоряет выполнение скрипта, ведь анализировать часть проще чем весь экран. Во вторых на всем экране могут быть похожие элементы или пиксели такого же цвета, которые помешают нам. Для этого необходимо в скобочках указать координаты двух углов, верхнего правого и нижнего левого. Например так GETSCREEN(649, 473, 883, 631).

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Тогда в буфер сохранится выделенный красным криво-прямоугольником участок. Ну например если мы хотим нажать одну из этих зеленых кнопок, и мы знаем что они всегда находятся в этой области.

Хорошо, мы сохранили изображение, как его проанализировать?

IF_PIXEL_IN - ищет пиксель заданного цвета в снимке, и возвращает его координаты. Обязательно нужно указать координаты (если вы сделали снимок области, указываем такие же координаты, что и для GETSCREEN) и цвет искомого пикселя. В коде это выглядит так:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

$_return1 \ $_return2 - переменные созданные самой программой, в них лежат координаты (по Х и по Y) для первого найденного пикселя такого цвета в этом участке изображения. Мы можем проделать любые действия с ними, например нажать левой\правой кнопкой мыши, остановить\продолжить исполнение программы и так далее. Для этого нужно поставить эти действия между IF_PIXEL_IN и END_IF которое обозначает конец условия, также как в команде IF.

Откуда мы узнали какой цвет пикселя нам нужно искать? Для этого достаточно навести на нужное место и посмотреть в окно определения цвета clickermann.

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Оранжевым изобразил указатель мыши в момент создания этого снимка.

Но нужно быть осторожным, многие сайты меняют цвета кнопок при наведении на них, так и здесь на пикабу, кнопка "картинка" не меняет цвет при наведении, а вот видео и текст меняют и при наведении на них мы увидим цвет:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Как видно, при наведении кнопка побледнела, в отличии от "картинка", кстати @SupportTech, а не баг ли это?))

Получается, чтобы узнать цвет пикселя нам нужно навести на кнопку, но при наведении, цвет меняется, в своё время я немало посидел, над причиной, почему моя программа не находит цвет, когда вот он туточки.

Для этого мы можем пойти простым путём, делаем скриншот экрана одним из следующих способов, в зависимости от вашего просветления:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Ну разве что последний способ не очень подходит, после чего открываем картинку и уже на ней наводим на кнопку и смотрим её цвет:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

С помощью этой функции, также можно проверять, открыто ли нужное окно у вас, или ваша программа начинает творить фигню. Например, мы знаем, что Excel выглядит так:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

наверху у него всегда цвет пикселя

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Теперь мы можем создать проверку, например мы работаем в Excel и браузере, соответственно в браузере сверху нет цвета пикселя Excel, тогда если мы находим такой пиксель - выводим оповещение:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

SOUND("имя_файла.wav") - воспроизводит звуковой файл в ваши динамики, давая вам знать о проблеме или например успешном окончании программы. Только .wav файлы. Файл должен находиться в папке с программой clickerman.

Теперь программа позовёт вас, если что-то пойдёт не так и будет ждать. Как вариант можно в действиях указать нажатие левой кнопкой мыши по значку Excel, для его раскрытия и потом ещё одну такую же проверку, в 90% случаев именно из-за лишнего закрытия-открытия окна что-то идёт не так.

Мы разобрали случай, когда цвет пикселя не повторяется на экране, то есть у нас есть только одна кнопка "текст" например, но что, если у нас множество кнопок одного цвета, и цена ошибки слишком высока, как то так:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Тогда следует использовать анализ экрана по совпадению картинки, а поможет нам функция

IF_PICTURE_IN - ищет образец картинки в сохраненном участке изображения. Только файлы bmp формата, пример:

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Чтобы повысить вероятность нахождения, можно указать % точности совпадения. Например так:

IF_PICTURE_IN (20,20, 300, 300, "somefile.bmp", 0, 90) тогда, 90% совпадения будет достаточно для запуска действий внутри IF.

Как получить картинку формата .bmp?

Есть два способа, самый точный это командой SCREENSHOTEX - сохраняет участок экрана как отдельный файл в папке с программой.

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

и второй способ, включаем режим лупы

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Теперь смотрим на окно лупы в clickermann и наводим на нужное место, нажимаем ALT + G

и скриншот указанный на экране лупы будет сохранен в папке программы внутри папки screens.

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост

Теперь это изображение мы можем использовать для поиска его при исполнении скрипта.

Мы рассмотрели две основные функции для анализа экрана, по пикселю и по изображению. Вы можете ознакомиться с остальными функциями в справке программы, возможно найдете функцию которая больше подходит вам для исполнения вашего скрипта, но эти две на 95% покрывают все потребности.

Автоматизация однотипных действий, ч.3 . Подпрограммы и анализ экрана Автоматизация, Автокликер, Анализ, Длиннопост


Программы и Браузеры

191 пост 3.7K подписчика

Правила сообщества

-Ставьте наши теги, если Ваш пост о программе, приложении или браузере(в том числе о расширениях, дополнениях в нему), его недоработке, баге, обновлении. Это может быть пост - обзор или отзыв.

-При возникновении споров относитесь с уважением друг к другу, а так же приводите аргументы.

Разрешено всё, что не запрещено правилами Пикабу.

Не знаю, как применить написание таких скриптов в моей работе, но огромный плюс за ценную инфу и хорошее изложение!

где можно увидеть наглядные примеры с использованием этого софта? Программы и тд. Группа в вк чет мертвая совсем у них

А подскажите, какие функции нужны что бы сделать так:

Кликер работает, доходит до поля где нужно вручную ввести текст с бумажки, ждёт ввода, после ввода продолжает дальше.

Это можно как-то на горячую клавишу вывести? Например, ввели текст, нажали "энтер" и он пошёл дальше.

Делать проверку через анализ экрана сильно замороченно, я уверен, что это можно как то проще сделать.

Это очень круто

В пятницу познала дзен с битриксом, всего-то 200 правил для купонов с 1 купоном создать.

В субботу поняла, что можно использовать ваш совет про кликер, вручную вставляя в буфер обмена данные

Да будет завтра битва! ;)

Реализовал кучу функций аля

LCLICK(512,331) //клик по адресу

Понял, что уже реализованы горячие клавиши в разделе шаблонов.

Иллюстрация к комментарию

Несмотря на то что продолжение не получило такого отклика как начало, ты все-равно молодец.

Хотелось узнать как в Индии относятся к фильму ПиКей в плане его антирелигиозности

Мне больше BurundukPro подходит, есть два режима, для тех кто не хочет морочиться с программированием и для программистов.

Вроде инженерное образование, вроде умею читать. Прочёл все три поста несколько раз, но так и не смог написать ничего работающего(
Я один такой тупой?

Эх, сколько раз меня выручала автоматизация! Вспомнил тут пару случаев. (если что то использую скрипты в AutoHotkey (AHK)).

Первый был когда еще в органах работал. Начальство придумало - а давайте все фабулы дел вносить в базу данных. При этом база данных не воспринимала копировать-вставить (что тупо), но база не публичная и вход через матюки и старый интернет эксплорер, так что работали как есть. Сидишь, придумываешь как это сократить и потом впечатываешь. Особенно сильно негодовали мы с другом, так как у нас были не перспективные дела (в отделе на каждого следака было по 10 дел в месяц, а у нас с ним напару под сотню, именно чтобы разгрузить остальных). И нам печатать было больнее всего. И тут я вспомнил про АНК и что он умеет печатать из буфера обмена - т.е. для меня это было копировать-вставить, а база воспринимала это словно я напечатал. Экономия во времени была колоссальная.

Да и мелкие задачи, если их можно автоматизировать, тоже переносятся в АНК. Из того что помню:

- тоже из учётки. Перешла к нам в отдел женщина, которая в работе разбиралась но с пк была на Вы. Очень мне не нравилось что она постоянно просила меня подойти и поставить апостроф, т.к. у неё не получалось (много раз в день, Карл!). На очередную просьбу я просто сделал ей скрипт который этот апостроф ставит по нажатию на Pause, а на клавиатуру напечатал на самоклейке этот апостроф и на эту кнопку наклеил.

- в онлайн игре играл в 9 окон (ходил на рейд в соло в л2, управляя всем из одного) - это не продвинутый бот и пришлось помучаться но в итогесмог отправлять команды в свёрнутые окна не открывая из, было удобно; в другой игре был тупой крафт, где тоже нужно было прокликивать одни и те же места, тоже скрипт сработал.

- часто работаю в премьер про (программа видеомонтажа) и там некоторые удобные функции не реализованны, увы. Но они прекрасно допиливаются скриптом. Те же накидывания эффектов. Приходится переключаться на отдельную панель, имкать там эффект и перетаскивать на слой.Но те кто работал в АЕ с Fx console меня поймет, это можно сделать удобнее - скрипт сам делает все эти действия, еще и за секунду. Или еще пример. Часто приходится повышать уровень громкости, и это однотипное движение, особенно если видеофрагментов под сотню. Все вместе тоже нельзя - автоматика выровняет по самому громкому кусочку, что попортит все. Выручает скрипт. И еще полезность - горячие клавиши нельзя повесить на правую кнопку мыши, но иногда хочется - опять скрипт. Сделал перемещение курсора себе на пкм. Он еще и щупает что лежит под курсором и если там кусочек видео, то выпадает меню (как обычно), а если пустота то срабатывает горячая клавиша.

- надо было отстабилизировать много фрагметов видео. Алгоритм следющий - выделяем фрагмент, набрасываем на него стабилизатор, жмем "анализ", ждём пока пройдет анализ (каждый раз разное время, зависит от длинны кусочка видео), и переходим к следующему кусочку. И так пару сотен кусков. С коллегой решили что лучше потратить время на настройку скрипта и оставить компьютер на ночь чем сидеть руками делать. И помогло что скриптом можно определять открыто ли окно анализа, на что мы и ориентировались.

Если вы подумали, что для того чтобы сделать всё тут описанное нужны навыки програмирования, то вы ошибаетесь. Большая часть примеров была сделана путем копирования скрипров которые записаны в русской документации по программе (прямо напрячься пришлоь только в скрипте для игры). Да и на самом деле сейчас есть много других программ, в которых даже не нужно ничего писать текстом, записывай действия и все (как в оригинальном посте).
Поэтому помните, что автоматизация это бро. Иногда стоит потратить время на обдумывание однообразной задачи и попытки её автоматизировать.

Как отмечалось на странице загрузки, кликкерманн имеет два способа записи сценария: производить запись действий с экрана или написать программу самому. Встроенный язык программирования создан максимально для новичков, поэтому большинство людей смогут его освоить.

Запись сценария

Чтобы записать сценарий, нажмите на красный квадрат — программа начнет записывать ваши действия.

Запись сценария

Запись сценария

После того как необходимо запись остановить, нажмите на синий квадрат.

Программируем сценарий

В примере будет показан скрипт для очистки корзины.

Сохраните программу, чтобы скрипт могли воспроизводить в будущем. Чтобы запустить программу нажмите зеленую кнопку PLAY.

создай кликер. Выдай на страницу квадратик, в нем цифру 0, по клику на квадрат – цифра каждый раз увеличивается на 1.


Кликер в фоне. Как реализовать?
Добрый день. Хочу сделать так, чтобы кликкер выполнял действия в браузере в фоне, даже допустим в.

Кликер
Всем привет! Подскажите кто нибудь,надо сделать чтобы программа нажимала определенную кнопку при.

Кликер
Доброго времени суток господа, у меня возник нубский вопрос, есть расширение для гугл хрома.

Кликер
Хочу написать кликер для 1 он-лайн игрушки, но ни разу не писал кликеры. Хотел бы попросить либо.

Кликер
Привет. Я недавно захотел сделать клипер на юнити . Тема: Rust clicker. У меня вопрос? Как.

кликер
Друзья можна зделать кликер для сайта которий би кликал по силках перед которими стоит специальное.

Кликер
помогите пожалуйста перевести код на с++ using System; using System.Windows.Forms; namespace.

Кликер
Всем привет Нужна помощь. Как можно сделать програмку ниже, что бы прикрепить к конкретному окну?

Читайте также: