Автокликер Clickermann :: Форум

Основной раздел => Прочее => Topic started by: James on January 02, 2019, 09:23:48 PM

Title: Clickermann Helper [Alpha 0.3]
Post by: James on January 02, 2019, 09:23:48 PM
Всем привет! Посматриваю периодически темы на форуме, интересно, что и как, сам уже не пользуюсь кликером, но все равно его люблю. Периодически мелькают вопросы по поводу каких - либо оповещений через Telegram или что - нибудь еще, поэтому я решил сделать маленькую .exe утилиту в поддержку кликеру, которая должна работать через EXECUTE. Функционал естесственно по запросу. Если что - то нужно, будем пытаться что - то придумать по мере возможностей.
В программировании я относительный новичок, пишу на C#, тестировалось на Windows 10 Home x64, Clickermann 4.13 x64. Может потребоваться .net Framework 4.7.2
На данный момент добавил оповещения через Telegram, постараюсь описать как можно удобнее

Актуальная версия 0.3 от 06.01.19, это сообщение отредактировано, синтаксис упрощен и изменен  :)


Я заранее извиняюсь за свой корявый код на Clickermann'e, потому - что я года два на нем ничего не писал, опытные пользователи могут спокойно исправлять и переделывать мои примеры, а я внесу их в это сообщение


Раздел 1. Telegram

Сейчас доступно:

Перед использованием настраиваем CMH.ini, раздел Telegram!

[Telegram]
;Токен вашего бота
BotToken=

;Ваш чат айди, куда бот будет слать сообщения   
ChatId=

;Прокси, если нужен, авторизация в прокси пока не работает, проверено на SOCKS5
Proxy=   


Отправка сообщения

Синтаксис отправки следующий:

Code: (clickermann) [Select]
EXECUTE("CMH.exe", "TMessage Сообщение")

Отправка изображения

Синтаксис отправки следующий:

Все пробелы в пути к картинке обязательно должны быть заменены на % !

Code: (clickermann) [Select]
EXECUTE("CMH.exe", "TPicture Путь.jpg[bmp, png] Подпись к картинке")


Раздел 2. Получение системной информации

По команде:
Code: (clickermann) [Select]
EXECUTE("CMH.exe", "SYSTEMINFO")
В CHM.ini в раздел [System] добавится следующая информация:

Считать соответственно можно так:
Code: (clickermann) [Select]
EXECUTE("CMH.exe","SYSTEMINFO")
WAIT(2)
LOGCLEAR   
PRINT(INIREAD("CMH.ini", "OSVersion", "System"))           //Версия Windows [Windows 10 Home]         
PRINT(INIREAD("CMH.ini", "CurrentLanguage", "System"))     //Текущий язык раскладки [Russian (Russia)]
PRINT(INIREAD("CMH.ini", "CPULoad", "System"))             //Загрузка процессора в процентах [5]
PRINT(INIREAD("CMH.ini", "RAMLoad", "System"))             //Количество занятой оперативной памяти в мегабайтах [5035]
PRINT(INIREAD("CMH.ini", "RAMFree", "System"))             //Количество свободной оперативной памяти в мегабайтах [3157]
PRINT(INIREAD("CMH.ini", "RAMLoadProc", "System"))         //Количество занятой оперативной памяти в процентах [55]
PRINT(INIREAD("CMH.ini", "RAMFreeProc", "System"))         //Количество свободной оперативной памяти в процентах [45]
PRINT(INIREAD("CMH.ini", "HDDLoad", "System"))             //Загрузка жесткого диска в процентах
HALT



Утилита ни в коем случае не ворует никаких ваших данных!

Так же любой опытный пользователь этого форума (Vint, Hito, kiril, ya12, Золотой и другие) могут спокойно получить ссылку на Гитхаб, чтобы проверить код лично.


Мой интерес - опыт и любовь к кликеру :)

В планах возвращать результат в ini файл, чтобы взаимодействие кликера с утилитой было более близкое

Всем спасибо за внимание, любые вопросы и просьбы по исправлению ошибок можете писать сюда  ;)

Файл прикреплен к сообщению!

Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 02, 2019, 10:23:40 PM
В проге есть проверка на отправку сообщения и сбоеустойчивость?
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: James on January 02, 2019, 10:29:21 PM
В проге есть проверка на отправку сообщения и сбоеустойчивость?

Поскольку по сути я только начал ее писать - нет :) Она работает через Get и Post запросы в своей основе, я, конечно, могу получать результат в виде .json файла, и например записывать определенные его значения в .ini файл, чтобы его можно было считать из кликера и далее действовать уже по факту, но может есть какие - либо более удобные варианты?  ???
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 02, 2019, 11:14:11 PM
я, конечно, могу получать результат в виде .json файла

Хм... А зачем тебе связываться с каким-то файлом...?

// Объявим переменную и укажем, что она имеет класс String
var
  otvet: String;

// Делаем запрос и тут же сохраняем ответ сервера в переменной otvet
otvet := IDHttp1.Get('https://api.telegram.org/bot<токен>/sendmessage?chat_id=<id чата>&text=<текст сообщения>');

И в переменной - otvet, у тебя сохранится ответ с сервера, в котором вся инфа и будет содержаться.
Или для наглядности можешь кинуть на форму Memo и прописать запрос так:

Memo1.Lines.Add(IDHttp1.Get('https://api.telegram.org/bot<токен>/sendmessage?chat_id=<id чата>&text=<текст сообщения>'));

Ну, это чтобы ты визуально убедился, что ответ таким образом получается.
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: James on January 02, 2019, 11:25:36 PM
я, конечно, могу получать результат в виде .json файла

Хм... А зачем тебе связываться с каким-то файлом...?

// Объявим переменную и укажем, что она имеет класс String
var
  otvet: String;

// Делаем запрос и тут же сохраняем ответ сервера в переменной otvet
otvet := IDHttp1.Get('https://api.telegram.org/bot<токен>/sendmessage?chat_id=<id чата>&text=<текст сообщения>');

И в переменной - otvet, у тебя сохранится ответ с сервера, в котором вся инфа и будет содержаться.

Сервер сам по себе отдает json просто :)
Я про то, как сказать пользователю, что все окей
Сама - то прога поймет, отправила успешно или нет, а вот как об этом без ini файла может узнать юзер кликерманна и его скрипт.. :-\
В самой проге можно прикрутить проверку, чтобы заново при фейле отправляла например.

Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос. Наверное через EXECUTE это невозможно.
.net приложения умеют возвращать результат своей работы в виде цифр (0-9 вроде бы), а вот кликер их без файла принять уже не сможет, без содействия Johnny  по крайней мере  :(

Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 02, 2019, 11:28:57 PM
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос.

А dll не справится с оправкой сообщения в телеграм? Я просто не пробовал...
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: James on January 02, 2019, 11:34:27 PM
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос.

А dll не справится с оправкой сообщения в телеграм? Я просто не пробовал...

Я предварительно изучил этот вопрос и вот к чему я собственно пришел..
В DLL уходит именно int массив, а это только обработка некоторого количества чисел, без всяких строк и подобного.. (могу тут сильно ошибаться, но понял именно так)
Почитал темы насчет CALL, не помню если честно от кого было сообщение, но там была суть в том, что нормально возвращает результат только в 4.7 версии. А у меня так вообще везде нули были, но это я что - то накосячил на своей стороне скорее всего
Поэтому из - за механизма CALL функционал сильно ограничен и расширяемость его минимальна, поэтому и пошел в сторону exe :)
Может кто тут подскажет оптимальный вариант возврата ответа в кликер, тогда будем стараться реализовать именно его  :)
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: dramster on January 02, 2019, 11:35:01 PM
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос. Наверное через EXECUTE это невозможно.
.net приложения умеют возвращать результат своей работы в виде цифр (0-9 вроде бы), а вот кликер их без файла принять уже не сможет, без содействия Johnny  по крайней мере  :(

А про GETMESSAGE (wParam, lParam, [isnew] )  забыли уже?

Принимает системное сообщение 1024 (WM_USER, можно изменить в config.ini) , посланное главному окну кликера.
Без проблем принимает два параметра без всяких там файлов.
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: dramster on January 02, 2019, 11:38:54 PM

Я предварительно изучил этот вопрос и вот к чему я собственно пришел..
В DLL уходит именно int массив, а это только обработка некоторого количества чисел, без всяких строк и подобного.. (могу тут сильно ошибаться, но понял именно так)
Почитал темы насчет CALL, не помню если честно от кого было сообщение, но там была суть в том, что нормально возвращает результат только в 4.7 версии. А у меня так вообще везде нули были, но это я что - то накосячил на своей стороне скорее всего
Поэтому из - за механизма CALL функционал сильно ограничен и расширяемость его минимальна, поэтому и пошел в сторону exe :)
Может кто тут подскажет оптимальный вариант возврата ответа в кликер, тогда будем стараться реализовать именно его  :)


CALL не работал только в бетах 4.13, отсюда и паника была. Сейчас все отлично работает. По крайней мере мне удалось разобраться в написании длл для см в делфи.


Quote
без всяких строк и подобного..
А в 4.14 с функцией CODE можно и с текстом извернуться, если постараться.
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 02, 2019, 11:40:02 PM
А про GETMESSAGE (wParam, lParam, [isnew] )  забыли уже?

Вот с этой балалайкой я вообще еще не работал и то, что ты написала, для меня темный лес ))
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: James on January 02, 2019, 11:40:58 PM
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос. Наверное через EXECUTE это невозможно.
.net приложения умеют возвращать результат своей работы в виде цифр (0-9 вроде бы), а вот кликер их без файла принять уже не сможет, без содействия Johnny  по крайней мере  :(

А про GETMESSAGE (wParam, lParam, [isnew] )  забыли уже?

Принимает системное сообщение 1024 (WM_USER, можно изменить в config.ini) , посланное главному окну кликера.
Без проблем принимает два параметра без всяких там файлов.

Спасибо за прямую наводку, будем смотреть, что можно с этим сделать  :)
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: dramster on January 02, 2019, 11:48:39 PM
А про GETMESSAGE (wParam, lParam, [isnew] )  забыли уже?

Вот с этой балалайкой я вообще еще не работал и то, что ты написала, для меня темный лес ))

В справке неплохое описание есть, и пример. Но пример не показывает полезность использования.

Для лучшего понимания -

Запускаем кликерман№1, в нем код:

Code: (clickermann) [Select]
// поиск главного окна кликера№2
$h = wndfind("Clickermann№2")

// отправка сообщения окну кликера
postmessage($h, 1024, 123, 321)  // 123 и 321 - это нащи два сообщения

Запускаем кликерман №2 , в нем код:
Code: (clickermann) [Select]
// прием сообщения от кликера №1
getmessage($var1, $var2)
print("wParam:", $var1, "  lParam:", $var2) // смотрим то нам там пришло от него.

И без всякой посторонней помощи  :D. Отслеживание сообщения возможно сс помощью доп параметра isnew. Все в справке есть.
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 02, 2019, 11:56:25 PM
Code: (clickermann) [Select]
// поиск главного окна кликера№2
$h = wndfind("Clickermann№2")

// отправка сообщения окну кликера
postmessage($h, 1024, 123, 321)  // 123 и 321 - это нащи два сообщения

А 1024 - это что такое?
Ты уж прости )) У меня как с этой справкой не сложилось, когда я несколько лет назад этот форум мучил с вопросом - что такое переменная, так до сих пор я в ней многое и не понимаю )) Я больше понимаю в "живом" общении ))
Я в справке сейчас вижу:
message - сообщение окну (*)
Но что значит - сообщение окну (*)?
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 03, 2019, 12:11:37 AM
В общем я сейчас справку просмотрел и так нихрена и не понял. Ну, это я такой тугой на восприятие разных справок... Но в любом случае я больше повернут на ini, так как запускать еще и сторонние проги в каждой виртуалке - для меня это не удобно. А виртуалки у меня между собой общаются через ini.
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: dramster on January 03, 2019, 12:24:05 AM
POSTMESSAGE (hwnd, message, wParam, lParam)

hwnd - HWND окна - это понятно

Дальше принимающее окно должно понять, что там за сообщение, и принимать его вообще или нет, и где его искать если что и что с ним делать. Для этого параметр:
message - сообщение окну. Грубо говоря, это какоето число (не занятое какимто другим сообщением), по умолчанию в кликермане = 1024 (следовательно оно свободно). В конфиге есть параметр на всякий случай, можно сменить:
; Код сообщения, на которое должна реагировать ф-ция GetMessage
msg_hook = 1024

wParam, lParam - параметры сообщения

Для сравнения, чтобы нажать к примеру в игре кнопку какую-нибудь, то параметр message  там будет уже будет =256 (смотрим в справочниках). а wParam это будет код нашей кнопки.

Еще пример - как передаются координаты капчи в agclient:
PostMessage($hwnd, 0x555, 1, $x1)
PostMessage($hwnd, 0x555, 2, $y1)
PostMessage($hwnd, 0x555, 3, $x2)
PostMessage($hwnd, 0x555, 4, $y2)

Точно так же как и в агклиенте зарезервировано полчуение сообщения с кодом 0x555, также мы можем и кликером получать сообщения извне.

Quote
В общем я сейчас справку просмотрел и так нихрена и не понял. Ну, это я такой тугой на восприятие разных справок... Но в любом случае я больше повернут на ini, так как запускать еще и сторонние проги в каждой виртуалке - для меня это не удобно. А виртуалки у меня между собой общаются через ini.

Ну так тут конечно так не прокатит. Все верно, либо ини, либо еще какие файлы....   телеграмм, почта, ВК .... ;D
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 03, 2019, 07:54:18 PM
Нам, кстати, нужно просто обратиться к Kiril-у... Он же тут (в другой теме) до усеру орал, что я кликер унижаю и на самом деле все можно намутить в самом кликере. Что мы тут маемся-то? Пусть Kiril и даст путевый вариант на кликере...

И кстати... А почему не работает?

Code: (clickermann) [Select]
$str = httpget("https://api.telegram.org/bot<токен>/sendmessage?chat_id=<id чата>&text=Привет!")
LOGWRITE ($str)
HALT

На сколько я понимаю - тот же GET-запрос отправляется...?
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 03, 2019, 08:12:44 PM
О! Я понял - в чем проблема! Нам не нужно никакие костыли мутить! Короче...
Code: (clickermann) [Select]
$str = httpget("http://google.com/")
LOGWRITE ($str)
HALT

Работает, а

Code: (clickermann) [Select]
$str = httpget("https://yandex.ru/")
LOGWRITE ($str)
HALT

уже не работает!
О чем это говорит...? Я, например, нигде в папке кликера не заметил двух библиотек - libeay32.dll и ssleay32.dll. Это значит, что Johnny сделал возможным запросы GET только по незащищенным протоколам. А вот если он это исправит, то станет возможным отправлять GET-запросы не только на http, но и на https и тогда мы сможем обойтись без всяких костылей и все делать прямо из кликера.

Осталось уговорить Johnny намутить в кликере возможность отправки GET-запросов на https! Уж если мы это на коленке практически делаем, то он-то уж точно может это намутить...
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 03, 2019, 10:32:46 PM
Кто ЗА эту тему, плюсуйте тут - http://crapware.aidf.org/forum/index.php?topic=4400.new#new (http://crapware.aidf.org/forum/index.php?topic=4400.new#new)
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Johnny on January 05, 2019, 03:31:02 PM
О чем это говорит...? Я, например, нигде в папке кликера не заметил двух библиотек - libeay32.dll и ssleay32.dll. Это значит, что Johnny сделал возможным запросы GET только по незащищенным протоколам. А вот если он это исправит, то станет возможным отправлять GET-запросы не только на http, но и на https и тогда мы сможем обойтись без всяких костылей и все делать прямо из кликера.

Осталось уговорить Johnny намутить в кликере возможность отправки GET-запросов на https! Уж если мы это на коленке практически делаем, то он-то уж точно может это намутить...

я где то писал что возможность есть и даже библиотеки выкладывал, раз их имена у вас есть. они входят в состав проекта OpenSSL. их просто надо скопировать в папку рядом с ехешником и будет вам https. если нет - то не будет. это временное решение для тех, кому приспичило. включать их в дистрибутив смысла нет, скоро заработает и без них.
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Johnny on January 05, 2019, 03:38:42 PM
Всех, к слову, с Новым годом и все такое. У меня тут комп полетел в последних числах декабря, поэтому я ни по поздравлялки, ни бета версии не выкатил. Все печально, починить не удалось, хотя я так то не дурак, два технических образования, комп года с 2000-ого. Пришлось в магазин бежать за новым системником. Сижу тут что называется "с нуля". Буду смотреть осталась ли инфа на хардах. В общем веселимся в каникулы.

Всех благ :*
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: James on January 05, 2019, 09:42:05 PM
Всех, к слову, с Новым годом и все такое. У меня тут комп полетел в последних числах декабря, поэтому я ни по поздравлялки, ни бета версии не выкатил. Все печально, починить не удалось, хотя я так то не дурак, два технических образования, комп года с 2000-ого. Пришлось в магазин бежать за новым системником. Сижу тут что называется "с нуля". Буду смотреть осталась ли инфа на хардах. В общем веселимся в каникулы.

Всех благ :*
Джонни, привет, с Новым годом тебя, пользуясь случаем хочу спросить, можно ли привинтить спойлеры на форум? Я читал, что раньше они были, но из за обновления поломались
С ними бы было намного удобнее, спасибо)
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 05, 2019, 09:43:29 PM
Пришлось в магазин бежать за новым системником.

В новый год с новым системником! ))
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 05, 2019, 09:44:53 PM
"они входят в состав проекта OpenSSL. их просто надо скопировать в папку рядом с ехешником" - Ребят, ткните меня рылом плиз, где эти библиотеки... Все папки перерыл... Свои ставить не хочу, в проекте наверняка более подходящие.
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 05, 2019, 10:52:06 PM
Code: (clickermann) [Select]
$str = httpget("https://api.telegram.org/bot<токен>/sendmessage?chat_id=<id чата>&text=Hello!")
LOGWRITE ($str)
HALT

Заработало!!!!!! Я свои ддлки воткнул в общем и заработало!!! ))))) И никаких костылей не нужно теперь!

(http://imglink.ru/pictures/05-01-19/f40485607e87339726c36951ee8b71da.jpg)
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: dramster on January 06, 2019, 12:48:07 AM

Заработало!!!!!! Я свои ддлки воткнул в общем и заработало!!! ))))) И никаких костылей не нужно теперь!


Хехе  ;D, а я кстати вспомнил что про это когдато был разговор http://crapware.aidf.org/forum/index.php?topic=356.msg26057#msg26057 . Но как и в тот момент, так и до этого времени  :( незнал что это такое https и чем он отличается от  http. А вот оно как оказывается  :( , а ведь были и у меня проблемы с такими сайтами, и телеграм бота кагдато ж пробовал писать...
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: James on January 06, 2019, 11:45:27 AM
Обновлено до версии 0.2

Что нового?:

[Telegram]
Теперь можно добавить в .ini файл необходимую информацию(UseINI=1,BotToken, ChatId, Proxy(опционально)) и синтаксис отправки сообщения станет таким:

Для текстового сообщения
Code: (clickermann) [Select]
EXECUTE("CMH.exe", "TMessage Привет, как дела?");
Для картинки
Code: (clickermann) [Select]
EXECUTE("CMH.exe", "TPicture 1.jpg Подпись к картинке");


+[Получение системной информации]

По команде:

Code: (clickermann) [Select]
EXECUTE("CMH.exe", "SYSTEMINFO")
В CMH.ini в раздел [System] добавится следующая информация:

Считать соответственно можно так:
Code: (clickermann) [Select]
EXECUTE("CMH.exe","SYSTEMINFO")
WAIT(2)
LOGCLEAR   
PRINT(INIREAD("CMH.ini", "OSVersion", "System"))           //Версия Windows [Windows 10 Home]         
PRINT(INIREAD("CMH.ini", "CurrentLanguage", "System"))     //Текущий язык раскладки [Russian (Russia)]
PRINT(INIREAD("CMH.ini", "CPULoad", "System"))             //Загрузка процессора в процентах [5]
PRINT(INIREAD("CMH.ini", "RAMLoad", "System"))             //Количество занятой оперативной памяти в мегабайтах [5035]
PRINT(INIREAD("CMH.ini", "RAMFree", "System"))             //Количество свободной оперативной памяти в мегабайтах [3157]
PRINT(INIREAD("CMH.ini", "RAMLoadProc", "System"))         //Количество занятой оперативной памяти в процентах [55]
PRINT(INIREAD("CMH.ini", "RAMFreeProc", "System"))         //Количество свободной оперативной памяти в процентах [45]
PRINT(INIREAD("CMH.ini", "HDDLoad", "System"))             //Загрузка жесткого диска в процентах
HALT
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: Hito on January 06, 2019, 01:14:34 PM
Обновлено до версии 0.2

Что нового?:

А вот это зачем сейчас...? )))
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: James on January 06, 2019, 01:21:13 PM
Обновлено до версии 0.2

Что нового?:

А вот это зачем сейчас...? )))

Ну по сути, чтобы было, мало ли кому пригодится для чего - нибудь :)
Набираюсь опыта понемногу и добавляю даже то, что может пригодиться уж совсем минимальному числу людей  :)
Title: Re: Clickermann Helper [Alpha 0.1]
Post by: Hito on January 06, 2019, 01:26:57 PM
О чем это говорит...? Я, например, нигде в папке кликера не заметил двух библиотек - libeay32.dll и ssleay32.dll. Это значит, что Johnny сделал возможным запросы GET только по незащищенным протоколам. А вот если он это исправит, то станет возможным отправлять GET-запросы не только на http, но и на https и тогда мы сможем обойтись без всяких костылей и все делать прямо из кликера.

Осталось уговорить Johnny намутить в кликере возможность отправки GET-запросов на https! Уж если мы это на коленке практически делаем, то он-то уж точно может это намутить...

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

Johnny, Вы уж простите...) Я-то тупо не прочитал. Но думаю, что многие не вникли - что к чему. И тут только один сознался ))) А сейчас всем стало ясно )))

раз их имена у вас есть

У меня-то "их имена" уже года два валяются, если не больше...))))))
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: Hito on January 06, 2019, 01:31:47 PM
Обновлено до версии 0.2

Что нового?:

А вот это зачем сейчас...? )))

Ну по сути, чтобы было, мало ли кому пригодится для чего - нибудь :)
Набираюсь опыта понемногу и добавляю даже то, что может пригодиться уж совсем минимальному числу людей  :)

Так ты теперь отправку фото в чат мути из кликера, ато я что-то разобраться не могу с этим...))
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: James on January 06, 2019, 01:50:20 PM
Так ты теперь отправку фото в чат мути из кликера, ато я что-то разобраться не могу с этим...))

Я в первом сообщении обновил файл, там версия 0.2, попробуй скачать, распаковать в папку с кликерманом, а в CMH.ini


[Telegram]
;Если 1, то при отправке сообщения использует настройки из этого конфига
UseINI=1

;Токен бота
BotToken=Токен Бота

;Ваш чат айди, куда бот будет слать сообщения   
ChatId=Чат айди

;Прокси, если нужен
Proxy=Прокси, если нужен


И поидее теперь будет работать отправка картинок в упрощенном синтаксисе

Code: (clickermann) [Select]
EXECUTE("CMH.exe", "TPicture Путь_к_картинке.jpg Подпись_к_картинке")
Сейчас проверю на VPS, работает ли :) Потому - что мне приходится использовать с прокси

UPD: Без прокси отправляются картинки, но почему - то значительно медленнее. Думаю убрать предыдущую версию синтаксиса и работать только через .ini, так удобнее и для пользователя (если бот один) и в коде можно будет навести порядок.
Либо вынесу просто в отдельную функцию, сегодня будет сделано
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: Hito on January 06, 2019, 02:19:04 PM
И поидее теперь будет работать отправка картинок в упрощенном синтаксисе

Ты не понял )) В виду недавних событий, мне не интересно - как это из кликера передастся в твою прогу )) Мне интересно - как ТВОЯ ПРГА отправляет фото? Какой запрос делает? Сейчас же этот запрос прямо из кликера сделать можно )) Просто на сколько я понял, в телеграм апи нет прямой отправки фото в чат. Там сначала это фото нужно загрузить как-то на сервер телеграм и потом уже вставлять его в чат.
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: James on January 06, 2019, 03:24:49 PM
И поидее теперь будет работать отправка картинок в упрощенном синтаксисе

Ты не понял )) В виду недавних событий, мне не интересно - как это из кликера передастся в твою прогу )) Мне интересно - как ТВОЯ ПРГА отправляет фото? Какой запрос делает? Сейчас же этот запрос прямо из кликера сделать можно )) Просто на сколько я понял, в телеграм апи нет прямой отправки фото в чат. Там сначала это фото нужно загрузить как-то на сервер телеграм и потом уже вставлять его в чат.

Да, в целом все верно :)
Собирается multipart/form-data контент, который содержит в себе чат айди, "стрим" с фото и описание самого фото и отправляется POST запросом на сервера Телеграм :)

Что - то вроде того..
Сначала собираем мультипарт

MultipartData.Add(chatid);
MultipartData.Add(FileStream);
MultipartData.Add(caption);

А потом запросом швыряем его на сервера

webClient.PostAsync($"https://api.telegram.org/bot{BotToken}/sendPhoto", MultipartData);

Просто я не знаю, как это на Делфи будет выглядеть, так бы я сразу скинул уже исходником )

Как я понял, вот тут решается этот вопрос именно на Делфи https://toster.ru/q/315303
(Если разрешено тут ссылки кидать) =)
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: Hito on January 06, 2019, 03:49:45 PM
dramster, давай подключайся!  :) Как из кликера отправить сообщение на телеграм, мы уже знаем (ты, надеюсь, тоже уже понял). Правда пока только сообщения с латинскими символами, но думаю, что не будем мучить Johnny с кодировкой и обойдемся этим. Нужно состряпать отправку скринов из кликера. Предположим, выскочила какая-то капча и кликер отправляет ее скрин в телеграм. Мы с мобильника видим это сообщение, видим скрин и в ответном сообщении отправляем текст капчи. Скрипт в кликере обрабатывает ответ и вставляет текст в капчу. С обработкой ответа думаю справимся... Как отправить скрин?  :)
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: dramster on January 06, 2019, 04:28:16 PM
dramster, давай подключайся!  :)

  :D Мои опыты с телеграммом проводились гдето пол года назад.... безуспешно :(.  Уже и телеграммом не пользуюсь, и даже удалил. Позже может подумаю, так как заинтересовала твоя фраза "скрипт в кликере обрабатывает ответ и вставляет текст в капчу. С обработкой ответа думаю справимся..." . А разве это возможно? Если есть обратная связь, это было бы шикарно  ::). Просто насколько я помню, в мануалах телеграмма про это ни слова небыло. Позже пересмотрю...
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: James on January 06, 2019, 04:31:14 PM
dramster, давай подключайся!  :)

  :D Мои опыты с телеграммом проводились гдето пол года назад.... безуспешно :(.  Уже и телеграммом не пользуюсь, и даже удалил. Позже может подумаю, так как заинтересовала твоя фраза "скрипт в кликере обрабатывает ответ и вставляет текст в капчу. С обработкой ответа думаю справимся..." . А разве это возможно? Если есть обратная связь, это было бы шикарно  ::). Просто насколько я помню, в мануалах телеграмма про это ни слова небыло. Позже пересмотрю...

Как только мы отправляем нашему боту сообщение, оно отображается в json файле по запросу https://api.telegram.org/bot{Token}/getUpdates?, отсюда мы можем получить его текст и использовать его по назначению  :)
Title: Re: Clickermann Helper [Alpha 0.2]
Post by: Hito on January 06, 2019, 05:21:51 PM
А разве это возможно?

Ну, как бы тебе уже ответили до меня...))) Возможно! )) В том-то и фишка! С мобылы скриптом вообще можно будет управлять, как с пульта ))
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: dramster on January 07, 2019, 12:27:36 AM
Да, посидел, почитал, поэкспериментировал, в самом деле - отправка и прием сообщений работает прямо из кликера  :D.

Но вот с фото.....

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

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

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

Если кому-то интересно, могу скинуть сюда этот код с библиотекой.
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on January 07, 2019, 03:25:30 AM
Если кому-то интересно, могу скинуть сюда этот код с библиотекой.

Не... Сначала делаешь это:

Но уже можно переписать этот код под себя :).

А потом кидаешь сюда  ;D
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: James on January 07, 2019, 12:13:39 PM
Но только там есть вызов одной функции из доп библиотеки, я глянул на эту функцию....  :o застрелиться захотелось - там и вызов какихто длл, куча непонятных параметров, вызов еще кучи функций из этой же библиотеки  :o.

Это странно, на самом деле :) На C# именно отправка вместе со сбором запроса (не считая особенности для работы именно с кликером) выглядит так:

(https://i.imgur.com/UswQmqx.png)

И все, да и в принципе в любом языке функция отправки не сильно много должна занимать
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on January 07, 2019, 12:26:46 PM
Но только там есть вызов одной функции из доп библиотеки, я глянул на эту функцию....  :o застрелиться захотелось - там и вызов какихто длл, куча непонятных параметров, вызов еще кучи функций из этой же библиотеки  :o.

Это странно, на самом деле :) На C# именно отправка вместе со сбором запроса (не считая особенности для работы именно с кликером) выглядит так:

(https://i.imgur.com/UswQmqx.png)

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

https://api.telegram.org/bot{BotToken}/sendPhoto - Вот нужно выяснить, что подставляет в эту строку MultipartData...

Судя по скрину, как минимум, могу продолжить строку так:
https://api.telegram.org/bot{BotToken}/sendPhoto?chat_id={id_chata}&
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: James on January 07, 2019, 12:33:09 PM

https://api.telegram.org/bot{BotToken}/sendPhoto - Вот нужно выяснить, что подставляет в эту строку MultipartData...

Судя по скрину, как минимум, могу продолжить строку так:
https://api.telegram.org/bot{BotToken}/sendPhoto?chat_id={id_chata}

Да, строку скорее всего можно продолжить так, а фото отправляется с помощью FileStream, эта штука преобразует изображение в поток(массив?) байт и отправляет их на сервер, как я понимаю, а сервер уже из массива байт обратно делает картинку
Наверное на самом кликере это будет сложно, но может есть какие - то функции подходящие, я прям уже все совсем позабыл, надо справку покопать
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on January 07, 2019, 12:35:21 PM
На сколько я понял, в среднем MultipartData.Add,  FS несет в себе путь к файлу...
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on January 07, 2019, 12:38:55 PM
В общем наверно придется нам обойтись без картинок... Ну, или костыль все же мостырить... James, вот тебе и задачка  ;D
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: James on January 07, 2019, 12:41:41 PM
Да, в FS содержится еще путь до картинки
Именно средствами кликера наверное нереально, но может кто - то и сообразит
А так в любом случае мой EXE-шник умеет, обновил первый пост немного, можно отправлять картинку в одну строку
Но это чисто по желанию, я понимаю стремление решить все своими силами  :)

P.S Посмотри личное сообщение, я там по поводу другой темы на форуме написал :)
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on January 07, 2019, 12:43:57 PM
я понимаю стремление решить все своими силами  :)

У меня давно на этот счет другие взгляды... ;D Я вот дома машинку стиральную сам не собирал и жена этому рада  ;D
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on January 07, 2019, 01:13:43 PM
Надо бы еще глянуть в ВК - что там с загрузкой фото в API...
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: dramster on January 07, 2019, 02:39:39 PM
Если кому-то интересно, могу скинуть сюда этот код с библиотекой.

Не... Сначала делаешь это:

Но уже можно переписать этот код под себя :).

А потом кидаешь сюда  ;D

Так у Jamesа есть уже готовый вариант (я не проверял  :D).

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

Код для автоита, и пример вызова из него. Сообщение с кликерманом через ини или еще как, я думаю каждый сам напишет как ему удобнее.
Code: (clickermann) [Select]
#include "WinHttp.au3"

Func Telegram_SendImage($FileToUploadPath, $TelegramToken, $TelegramChatID, $Caption = "")
   
    $sAddress = "https://api.telegram.org/bot"&$TelegramToken&"/sendPhoto"


    ;//собираем строку вызова функции.
    If $Caption = "" Then
        $sForm = '<form action="' & $sAddress & '" method="post" enctype="multipart/form-data">' & '<input type="text" name="chat_id" />' & '<input type="file" name="photo"/>' & '</form>'
    Else
        $sForm = '<form action="' & $sAddress & '" method="post" enctype="multipart/form-data">' & '<input type="text" name="chat_id" />' & '<input type="file" name="photo"/>' & '<input type="text" name="caption"/>' & '</form>'
    EndIf
    ;//ConsoleWrite($sForm & @CRLF)

    $hOpen = _WinHttpOpen()  ;// какойто хендл сессии... в ответ полуаем какоето число

    $hConnect = $sForm ; //тут этого я не понимаю зачем, но написано было что для правильной кодировки сделано

    ;//вызов нужной функции из либы
    If $Caption = "" Then
        $sHTML = _WinHttpSimpleFormFill($hConnect, $hOpen, Default,"name:chat_id", $TelegramChatID,"name:photo", $FileToUploadPath)
    Else
        $sHTML = _WinHttpSimpleFormFill($hConnect, $hOpen, Default,"name:chat_id", $TelegramChatID,"name:photo", $FileToUploadPath,"name:caption", $Caption)
    EndIf

    ;//проверка на ошибку
    If @error Then
        MsgBox(4096, "Error", "Error number = " & @error)
    Else
        ConsoleWrite($sHTML & @CRLF)
    EndIf

    ; //Close handles
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hOpen)
 EndFunc

;//вызов функции описанной выше
Telegram_SendImage("путь к файлу, можно относительный", "ваш токен", "чат ид", "описание")

Exit

"WinHttp.au3" с константами во вложении. Там еще справка по либе.

Если ктото понимает в этом, параметр $sForm при вызове выглядит так:

Code: (текст) [Select]
<form action="https://api.telegram.org/bot-ваш токен-/sendPhoto" method="post" enctype="multipart/form-data"><input type="text" name="chat_id" /><input type="file" name="photo"/><input type="text" name="caption"/></form>
Вдруг это чемто поможет...


Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on January 07, 2019, 02:44:33 PM
Если ктото понимает в этом, параметр $sForm при вызове выглядит так:

Code: (текст) [Select]
<form action="https://api.telegram.org/bot-ваш токен-/sendPhoto" method="post" enctype="multipart/form-data"><input type="text" name="chat_id" /><input type="file" name="photo"/><input type="text" name="caption"/></form>
Вдруг это чемто поможет...

method="post" - К сожалению мы ограничены методом GET...
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: fts.xo on June 17, 2021, 12:40:36 PM
У кого-нибудь работает отправка изображений?
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: komandirbk on July 12, 2021, 03:16:29 PM
Никак не получается отправить изображение. Какая все таки рабочая версия кода если картинка лежит на диске C в корне?
Title: Re: Clickermann Helper [Alpha 0.3]
Post by: Hito on December 08, 2021, 10:36:44 PM
Никак не получается отправить изображение. Какая все таки рабочая версия кода если картинка лежит на диске C в корне?
Сорри - вижу, что очень давно последний вопрос в этой теме прозвучал, но все же решил подытожить свои "пять копеек" по этой теме... Всё, что мне удалось сделать, так это написать почтовый клиент, который любые картинки, оказавшиеся с ним в одной папке, отсылает на указанный почтовый адрес. В кликере естественно в нужный момент делался скрин, который сохранялся в папку с этим почтовым клиентом. Против всяких капч затея так себе - слишком долгая. Но, как периодический удаленный контроль некий, с условием, что через тот же ВК у тебя скрипт способен принимать команды, вполне себе рабочая штука.