Здравствуйте, гость ( Вход | Регистрация )

7 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> Arduino, Нажатия мыши и клавиатуры в обход защиты от кликеров
cirus
сообщение 19.2.2021, 1:46
Сообщение #41


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 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)

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 20.2.2021, 19:48
Сообщение #42


**

Neophyte
Сообщений: 34
Регистрация: 10.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.851
Возраст: 36



Скажите, а такое написание:

hw.mouse.move (arr[1][1] + (1 + math.random (50), arr[1][2] + (1 + math.random (50))

допустимо, для "случайного" перемещения курсора?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 20.2.2021, 20:30
Сообщение #43


****

Apprentice
Сообщений: 282
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8296
Пользователь №: 19.451
Возраст: 32



Код
hw.mouse.move (arr[1][1] + math.random (50), arr[1][2] + math.random (50))


В начале скрипта обязательно добавить один раз строку
Код
math.randomseed(os.clock())

Иначе рандом будет рандомным ровно 1 раз)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.2.2021, 3:14
Сообщение #44


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
Иначе рандом будет рандомным ровно 1 раз)

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 22.2.2021, 23:50
Сообщение #45


**

Neophyte
Сообщений: 34
Регистрация: 10.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.851
Возраст: 36



"Вернулась" проблема с не закрытием порта, которая вешает пилот.

Один и тот же скрипт может работать часами, а может подвесить пилота уже через 10-15 минут работы, пробовал на разных компьютерах, плюс минус поведение одинаковое.

Ребят подскажите как поставить драйвер из шапки в замен, стандартного драйвера от Arduino IDE.

Ручную остановку скрипта при "открытом порте" - усвоил и избегаю, а какие факторы (команды) в скрипте могут влиять на, не возможность закрытия порта?

Другими словами может ли сам скрипт не давать закрыть порт, соответственно подвешивать пилота?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.2.2021, 0:15
Сообщение #46


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Нужен минимальный код, который приводит к зависанию.
Цитата
как поставить драйвер из шапки в замен

Запустить exe и нажать install.



Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 23.2.2021, 0:19
Сообщение #47


**

Neophyte
Сообщений: 34
Регистрация: 10.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.851
Возраст: 36



А зачем нам вообще этот драйвер из шапки, если у нас на плате нет преобразователей usb-uart, ведь он встроен в саму Atmega32u4?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 23.2.2021, 12:03
Сообщение #48


***

Novice
Сообщений: 85
Регистрация: 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)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.2.2021, 12:24
Сообщение #49


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
как сместить курсор в лево/право на 3 пикселя относительно позиции курсора

Код
--lua
local hw = require'arduino'
hw.com = hw.get_port (2341, 8036)    -- указать vid и pid ардуино
if hw.com < 1 then   -- если номер порта меньше 1
     log ('error = ' .. tostring(hw.com))    -- код ошибки, если 0 значит устройство с указанными vip и pid не найдено
     end_script ()
end

local x, y = mouse_pos ()
hw.mouse.move (x+3, y)     -- вправо на 3 пикселя

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 23.2.2021, 12:36
Сообщение #50


**

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 () -- отжать левую кнопку мыши
...

клик (зажатие) проходил

При работе через dll уже, не работает
...
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_left_down () и hw.mouse_left_up ()", возможно ли сделать клик (зажатие, отпускание), в том месте где уже находится курсор?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 23.2.2021, 13:02
Сообщение #51


**

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 ()", возможно ли сделать клик (зажатие, отпускание), в том месте где уже находится курсор?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.2.2021, 13:02
Сообщение #52


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 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)    -- отпустить левую кнопку мыши



Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 23.2.2021, 17:11
Сообщение #53


**

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.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyja
сообщение 25.2.2021, 11:50
Сообщение #54


***

Novice
Сообщений: 85
Регистрация: 29.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.164



Цитата(cirus @ 23.2.2021, 12:24) *

Код
--lua
local hw = require'arduino'
hw.com = hw.get_port (2341, 8036)    -- указать vid и pid ардуино
if hw.com < 1 then   -- если номер порта меньше 1
     log ('error = ' .. tostring(hw.com))    -- код ошибки, если 0 значит устройство с указанными vip и pid не найдено
     end_script ()
end

local x, y = mouse_pos ()
hw.mouse.move (x+3, y)     -- вправо на 3 пикселя


Если не использовать привязку к окну то все работает ок, но при привязке к окну смешение происходит вверх, подскажите как с привязаным окном смешять?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.2.2021, 12:05
Сообщение #55


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Если не использовать привязку к окну то все работает ок, но при привязке к окну смешение происходит вверх, подскажите как с привязаным окном смешять?

В файле arduino.lua в строке mouse_pos('abs') убрать 'abs'.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 8.4.2021, 20:50
Сообщение #56


****

Apprentice
Сообщений: 282
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8296
Пользователь №: 19.451
Возраст: 32



Замечена такая проблема, если подключать arduino после подключения нового findcolor вылетает ошибка
arduino.lua:208: bad argument #4 to 'CreateFileA' (cannot convert 'number' to 'struct 181 *')
если порядок изменить все ок.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.4.2021, 1:34
Сообщение #57


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Выкладывайте код, который вызывает ошибку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 9.4.2021, 1:54
Сообщение #58


****

Apprentice
Сообщений: 282
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8296
Пользователь №: 19.451
Возраст: 32



Цитата(cirus @ 9.4.2021, 1:34) *

Выкладывайте код, который вызывает ошибку.

Код
--lua
log ('clear') log ('mode compact')

local ext = require('color')
local hw = require('arduino')

hw.com = hw.get_port (2341, 8036)
if hw.com < 1 then
  log ('error = ' .. tostring(hw.com))
  end_script ()
end
hw.set_delay_key (30)
hw.set_random_delay_key(10)
hw.set_delay_mouse (30)
hw.set_random_delay_mouse(10)
hw.set_offset_mousemove(10)
hw.set_delay_mousemove(2)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.4.2021, 2:39
Сообщение #59


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Обновил архив в первом посте, теперь не должно быть ошибки.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 9.4.2021, 12:28
Сообщение #60


****

Apprentice
Сообщений: 282
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8296
Пользователь №: 19.451
Возраст: 32



Цитата(cirus @ 9.4.2021, 2:39) *

Обновил архив в первом посте, теперь не должно быть ошибки.

Все ок, спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

7 страниц V < 1 2 3 4 5 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 17:12
Designed by Nickostyle