Kostick |
Отправлено: 19 Июня, 2024 - 03:56:15
|
Мастер
Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020
Репутация: 1
|
Здравствуйте.
Приобрёл плату Arduino, чтобы использовать её как имитатор клавиатуры и мыши по инструкции(для просмотра ссылки Вам необходимо авторизоваться) т.к. в игре Lost Ark защита не пропускала обычные нажатия, который отправлял Kibor.
Т.к. бота создаю в Визуальном редакторе, задался вопросом, можно ли как-то модифицировать окно Визуального редактора, чтобы в нём в выборе блоков в Эмуляции кроме функций "key" и "mouse" появились функции "_Key_Arduino" и "_Mouse_Arduino", которые используются для Arduino. И если их используешь, то в начале дописывался бы следующий текст для объявления переменных:
CODE:#define MOUSE_LEFT 1
#define KEY_RETURN 0xB0
#define KEY_TAB 0xB3
string path_to_dll = pathfolder()+"Arduino.dll";
external(INT, "get_port", "get_port", path_to_dll);
external(INT, "set_port", "set_port", path_to_dll);
// Параметры для мыши
external(INT, "get_port", "get_port", path_to_dll);
external(INT, "set_port", "set_port", path_to_dll);
external(INT, "set_delay_mouse", "set_delay_mouse", path_to_dll);
external(INT, "set_delay_mousemove", "set_delay_mousemove", path_to_dll);
external(INT, "set_offset_mousemove", "set_offset_mousemove", path_to_dll);
external(INT, "set_random_delay_mouse", "set_random_delay_mouse", path_to_dll);
external(INT, "mouse_click", "mouse_click", path_to_dll);
external(INT, "mouse_click_dbl", "mouse_click_dbl", path_to_dll);
external(INT, "mouse_drag_left", "mouse_drag_left", path_to_dll);
external(INT, "mouse_drag_right", "mouse_drag_right", path_to_dll);
external(INT, "mouse_left", "mouse_left", path_to_dll);
external(INT, "mouse_left_dbl", "mouse_left_dbl", path_to_dll);
external(INT, "mouse_left_down", "mouse_left_down", path_to_dll);
external(INT, "mouse_left_up", "mouse_left_up", path_to_dll);
external(INT, "mouse_middle", "mouse_middle", path_to_dll);
external(INT, "mouse_middle_dbl", "mouse_middle_dbl", path_to_dll);
external(INT, "mouse_middle_down", "mouse_middle_down", path_to_dll);
external(INT, "mouse_middle_up", "mouse_middle_up", path_to_dll);
external(INT, "mouse_move", "mouse_move", path_to_dll);
external(INT, "mouse_right", "mouse_right", path_to_dll);
external(INT, "mouse_right_dbl", "mouse_right_dbl", path_to_dll);
external(INT, "mouse_right_down", "mouse_right_down", path_to_dll);
external(INT, "mouse_right_up", "mouse_right_up", path_to_dll);
external(INT, "mouse_wheel_down", "mouse_wheel_down", path_to_dll);
external(INT, "mouse_wheel_up", "mouse_wheel_up", path_to_dll);
// Параметры для клавиатуры
external(INT, "set_delay_key", "set_delay_key", path_to_dll);
external(INT, "set_random_delay_key", "set_random_delay_key", path_to_dll);
external(INT, "_key", "key", path_to_dll);
external(INT, "_key_down", "key_down", path_to_dll);
external(INT, "_key_up", "key_up", path_to_dll);
external(INT, "text", "text", path_to_dll);
int com = get_port(2341, 8037); // узнать в каком com порте находится ардуино, передаются VID и PID
if(com==0)
{
messagebox("Arduino с указанными VID и PID не найдено");
}
set_port(com); // установить порт, в него будут отправляться команды из длл
// Параметры для мыши
set_delay_mouse(100); // установить паузу между нажатием и отпусканием кнопок мыши
set_random_delay_mouse(20); // рандом между нажатием и отпускание кнопок мыши
set_delay_mousemove(1); // пауза между каждым шагом перемещением мыши, чем меньше тем быстрее
set_offset_mousemove(2); // шаг перемещения курсора, чем больше, тем быстрее перемещается курсор
// Параметры для клавиатуры
set_delay_key(100); // установить паузу между нажатием и отпусканием клавиш
set_random_delay_key(20); // установить рандом между нажатием и отпусканием клавиш
Модифицированные файлы для визуального редактора:
_Key_Arduino -(для просмотра ссылки Вам необходимо авторизоваться) _Mouse_Arduino -(для просмотра ссылки Вам необходимо авторизоваться)
Примеры для клавиатуры:
CODE:text("Напечатать этот текст"); // ввести текст
_key(KEY_TAB); // нажать Tab
text("Print this text"); // ввести текст
_key(KEY_RETURN); // нажать Enter
_key('a'); // нажать клавишу a
_key('A'); // нажать SHift+a
pause(2000);
_key_down('z'); // зажать клавишу z
pause(3000); // ждать 3 секунды, клавиша z будет зажата
_key_up('z'); // отпустить клавишу z
_key_down(122); // можно и так, передав код нужной клавиши из таблицы ASCII
pause(3000);
_key_up(122);
Примеры для мыши:
CODE:mouse_move(250, 300); // переместить курсор в нужные координаты
mouse_click(MOUSE_LEFT); // клик левой кнопкой мыши в текущих координатах курсора
pause(1000);
mouse_left(100, 500); // клик левой кнопкой мыши в указанных координатах
pause(1000);
mouse_drag_left(100, 200, 1000, 500); // зажать курсор в координатах 100, 200 и переместить в 1000, 500
pause(1000);
set_offset_mousemove(10); // изменить шаг перемещения курсора
mouse_right(40, 30); // клик правой кнопкой мыши в указанных координатах
(Добавление)
UPD. Вроде бы сделал.
Добавил файлы "_Mouse_Arduino" и "_Key_Arduino" в папки "templates" и "templates_web"
И добавил строчки:
Цитата: _Mouse_Arduino
_Key_Arduino
Во все файлы в папках "profile" и "profile_web" в раздел "SECTION "Эмуляция" 0"
(Добавление)
Только не нашел, как сделать так, чтобы при добавлении новых блоков вначале вставлялся текст с объявлением переменных.(Отредактировано автором: 19 Июня, 2024 - 04:14:31) |
|
|
Kibor |
Отправлено: 23 Июня, 2024 - 10:47:17
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Kostick пишет: Только не нашел, как сделать так, чтобы при добавлении новых блоков вначале вставлялся текст с объявлением переменных.
Смотрите как пример блока MessageBoxA (В секции Другое в самом низу)
Там показано как вызывать API и функции с dll
Цитата: [INTERFACE]
DIALOG, "MessageBox", 405, 111;
STATIC, "Заголовок", 8, 8, 100, 20;
EDIT, 116, 8, 276, 20, string Zag;
STATIC, "Текст", 8, 32, 100, 20;
EDIT, 116, 32, 276, 20, string Text;
BUTTON_OK, "Принять", 184, 60, 100, 20;
BUTTON_CANCEL, "Закрыть", 292, 60, 100, 20;
[END]
[APPEARANCE]
COLOR = 100, 100, 100;
SIZE_X = 18;
SIZE_Y =4;
[END]
[ASSOC_VAR]
N1 = NULL;
Text ="Это подключенная Api функция";
Zag = "Заголовок";
N2 = NULL;
[END]
[GLOBAL_SINGLE_CODE_TOP]
#define NULL 0x0
external(INT, "MessageBoxA", "MessageBoxA", "User32.dll");
[END]
[CALL]
(N1, Text, Zag, N2)
[END] |
|
|
|