Author Topic: Clickermann Helper [Alpha 0.3]  (Read 14142 times)

0 Members and 1 Guest are viewing this topic.

James

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Clickermann Helper [Alpha 0.3]
« 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] добавится следующая информация:
  • Версия Windows и язык раскладки
  • Загрузка процессора в %
  • Объем занятой и свободной оперативной памяти в мегабайтах и процентах
  • Загрузка жесткого диска в %

Считать соответственно можно так:
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 файл, чтобы взаимодействие кликера с утилитой было более близкое

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

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

« Last Edit: January 06, 2019, 04:26:53 PM by James »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #1 on: January 02, 2019, 10:23:40 PM »
В проге есть проверка на отправку сообщения и сбоеустойчивость?
Я не ду... Потому и не бу...

James

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #2 on: January 02, 2019, 10:29:21 PM »
В проге есть проверка на отправку сообщения и сбоеустойчивость?

Поскольку по сути я только начал ее писать - нет :) Она работает через Get и Post запросы в своей основе, я, конечно, могу получать результат в виде .json файла, и например записывать определенные его значения в .ini файл, чтобы его можно было считать из кликера и далее действовать уже по факту, но может есть какие - либо более удобные варианты?  ???

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #3 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=<текст сообщения>'));

Ну, это чтобы ты визуально убедился, что ответ таким образом получается.
« Last Edit: January 02, 2019, 11:23:06 PM by Hito »
Я не ду... Потому и не бу...

James

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #4 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  по крайней мере  :(


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #5 on: January 02, 2019, 11:28:57 PM »
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос.

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

James

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #6 on: January 02, 2019, 11:34:27 PM »
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос.

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

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

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #7 on: January 02, 2019, 11:35:01 PM »
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос. Наверное через EXECUTE это невозможно.
.net приложения умеют возвращать результат своей работы в виде цифр (0-9 вроде бы), а вот кликер их без файла принять уже не сможет, без содействия Johnny  по крайней мере  :(

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

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

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #8 on: January 02, 2019, 11:38:54 PM »

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


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


Quote
без всяких строк и подобного..
А в 4.14 с функцией CODE можно и с текстом извернуться, если постараться.
« Last Edit: January 02, 2019, 11:42:18 PM by dramster »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #9 on: January 02, 2019, 11:40:02 PM »
А про GETMESSAGE (wParam, lParam, [isnew] )  забыли уже?

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

James

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #10 on: January 02, 2019, 11:40:58 PM »
Как бы вернуть ответ в саму переменную кликера, как в CALL, вот это конечно вопрос. Наверное через EXECUTE это невозможно.
.net приложения умеют возвращать результат своей работы в виде цифр (0-9 вроде бы), а вот кликер их без файла принять уже не сможет, без содействия Johnny  по крайней мере  :(

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

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

Спасибо за прямую наводку, будем смотреть, что можно с этим сделать  :)

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #11 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. Все в справке есть.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #12 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 - сообщение окну (*)
Но что значит - сообщение окну (*)?
« Last Edit: January 03, 2019, 12:03:05 AM by Hito »
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #13 on: January 03, 2019, 12:11:37 AM »
В общем я сейчас справку просмотрел и так нихрена и не понял. Ну, это я такой тугой на восприятие разных справок... Но в любом случае я больше повернут на ini, так как запускать еще и сторонние проги в каждой виртуалке - для меня это не удобно. А виртуалки у меня между собой общаются через ini.
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Clickermann Helper [Alpha 0.1]
« Reply #14 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