|
|
|
Arduino, Нажатия мыши и клавиатуры в обход защиты от кликеров |
|
|
cirus |
19.2.2021, 1:46
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 27517
Пользователь №: 16.971
Возраст: 29
|
Цитата пробовал такие варианты не срабатывает не один Потому что они все неправильные. Код --lua math.randomseed(os.clock()) function rand(x, y, x_plus, y_plus, x_minus, y_minus) return x+math.random(x_minus, x_plus), y+math.random(y_minus, y_plus) end
local x, y = rand(37, 533, 50, 50, -50, -52) log (x, y)
|
|
|
|
kyja |
23.2.2021, 12:03
|
Novice
Сообщений: 88
Регистрация: 29.10.2016 Группа: Пользователи Наличность: 0
Пользователь №: 18.164
|
Тоже периодически сталкивался с зависаниями но у меня не чистое подключение а проброс в виртуалки. Из команд как по крайне мере мне показалось это все что связано с зажатиями hw.key_down ('h') отказался от них и вроде лучше Так же не провереный на длинной дистанции но тоже непонятно почему дольще работает это покдлючение к порту а не hw.com = hw.get_port (2341, 8036) а hw.com = 6 И не dll а .lua через dll очень не долго работает Пробовал и нам ram диск класть пилота но это вообще ничего не дало вроде И конечно 10 винда сборок пробовал много разных остановился на 21h1 на 7 вообще печально все работает Подскажите пожалуйста как сместить курсор в лево/право на 3 пикселя относительно позиции курсора, на просто lua работал такой вариант c ардуино не работает такое смешение влево/вправо всегда тянет вверх скрипт
Код wait (70 + math.random (100)) hw.mouse.move (1071, 472) -- было move_smooth (1071, 472) wait (125 + math.random (20)) local x, y = mouse_pos () hw.mouse.right_down (x, y) -- было right_down (x, y) wait (125 + math.random (20))
if color(1791, 610 ) == 3951049 then local x, y = mouse_pos () clickoffsetx (3 + math.random (2)) hw.mouse.move (x, y) --было move_smooth (x, y) local x, y = mouse_pos () end
local x, y = mouse_pos () hw.mouse.right_up (x, y) -- было right_up (x, y)
|
|
|
|
KotMC |
23.2.2021, 13:02
|
Neophyte
Сообщений: 34
Регистрация: 10.1.2021 Группа: Пользователи Наличность: 0
Пользователь №: 19.851
Возраст: 36
|
Сам спросил, сам отвечу для моего применения можно просто удалить лишние строки в скрипте. Работать будет точно также как в первом варианте. было Код hw.mouse_move (arrP[1][1], arrP[1][2]) wait (300 + math.random (100)) hw.mouse_left_down () -- зажать левую кнопку мыши wait (300 + math.random (100)) hw.mouse_move (arrP[1][1], arrP[1][2] + (2 + math.random (3))) wait (300 + math.random (100)) hw.mouse_left_up () -- отжать левую кнопку мыши
стало Код hw.mouse_move (arrP[1][1], arrP[1][2]) wait (300 + math.random (100)) hw.mouse_left_down (arrP[1][1], arrP[1][2]) -- зажать левую кнопку мыши --wait (300 + math.random (100)) --hw.mouse_move (arrP[1][1], arrP[1][2] + (2 + math.random (3))) wait (300 + math.random (100)) hw.mouse_left_up (arrP[1][1], arrP[1][2] + (2 + math.random (3))) -- отжать левую кнопку мыши
Перемещение "зажатого" курсора происходит, и отпускание так же работает. И все же первоначальный вопрос не потерял актуальности Цитата Пилот ругается на не правильный аргумент в строке "hw.mouse_left_down () и hw.mouse_left_up ()", возможно ли сделать клик (зажатие, отпускание), в том месте где уже находится курсор?
|
|
|
|
cirus |
23.2.2021, 13:02
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 27517
Пользователь №: 16.971
Возраст: 29
|
Цитата Пилот ругается на не правильный аргумент в строке "hw.mouse_left_down () и hw.mouse_left_up () Потому что надо передавать координаты, в которых зажимать. Смотрите тип и количество передаваемых параметров: Код int mouse_left_down (int x, int y); Цитата возможно ли сделать клик (зажатие, отпускание), в том месте где уже находится курсор? код
Код --lua local ffi = require("ffi") local hw = ffi.load('Arduino.dll')
local MOUSE_LEFT = 1 local MOUSE_RIGHT = 2 local MOUSE_MIDDLE = 4
ffi.cdef[[ int get_port (int vid, int pid); int set_port (int COMport); int mouse_left (int x, int y); int mouse_click (int button); int mouse_left_down (int x, int y); int mouse_left_up (int x, int y); ]]
local com = hw.get_port(2341, 8036) --hint('Номер порта: ' .. tostring(com)) if com < 1 then -- если номер порта меньше 1 log ('error = ' .. tostring(com)) -- код ошибки, если 0 значит устройство с указанными vip и pid не найдено end_script () end hw.set_port(com)
wait(3000)
hw.mouse_click(MOUSE_LEFT) -- клик левой кнопкой мыши в текущих координатах wait(2000)
local x, y = mouse_pos () -- получить текущие координаты курсора hw.mouse_left_down (x, y) -- зажать левую кнопку мыши wait(2000) hw.mouse_left_up (x+300, y-100) -- отпустить левую кнопку мыши
|
|
|
|
KotMC |
23.2.2021, 17:11
|
Neophyte
Сообщений: 34
Регистрация: 10.1.2021 Группа: Пользователи Наличность: 0
Пользователь №: 19.851
Возраст: 36
|
"Обрамил" всё что возможно выводом в лог, получается следующие. Пилот зависает (открывает порт без закрытия) всегда в одном и том же месте: Код hw.set_port(com) hw.set_delay_mouse (100) -- установить паузу между нажатиями клавиш мыши hw.set_random_delay_mouse(50) -- установить рандом между нажатиями клавиш мыши hw.set_offset_mousemove(5) -- шаг перемещения курсора, чем больше тем быстрее перемещается hw.set_delay_mousemove(5) -- установить паузу между каждый шагом перемещения мыши, чем меньше, тем быстрее перемещается hw.set_delay_key (300) -- установить задержку нажатий клавиатуры hw.set_random_delay_key(10) -- рандом в мсек между нажатием и отпусканием клавиш клавиатуры
Проявляется как при использовании луа модуля, так и dll.
|
|
|
|
|
|
64 чел. читают эту тему (гостей: 64, скрытых пользователей: 0)
Пользователей: 0
|
|