|
|
|
Pilot + Arduino (Hardware clicker) |
|
|
Crocotea |
22.11.2020, 13:53
|
Novice
Сообщений: 51
Регистрация: 30.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.787
|
Цитата(Cockney @ 22.11.2020, 13:31) что именно не так работает ?
Стоит вопрос как нажимать клавиши f1,f2,esc,space и тд Дарк подсказал через 0xЦиферка, но не але*(
|
|
|
|
DarkMaster |
22.11.2020, 15:07
|
Модератор UOPilot
Сообщений: 9.596
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28803
Пользователь №: 11.279
|
https://github.com/arduino-libraries/Keyboa.../src/Keyboard.hпопробуйте B1 Там походу hid коды. Keyboard.h
Код /* Keyboard.h Copyright (c) 2015, Arduino LLC Original code (pre-library): Copyright (c) 2011, Peter Barrett This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
#ifndef KEYBOARD_h #define KEYBOARD_h
#include "HID.h"
#if !defined(_USING_HID)
#warning "Using legacy HID core (non pluggable)"
#else
// ================================================================================
// ================================================================================
// Keyboard
#define KEY_LEFT_CTRL 0x80 #define KEY_LEFT_SHIFT 0x81 #define KEY_LEFT_ALT 0x82 #define KEY_LEFT_GUI 0x83 #define KEY_RIGHT_CTRL 0x84 #define KEY_RIGHT_SHIFT 0x85 #define KEY_RIGHT_ALT 0x86 #define KEY_RIGHT_GUI 0x87
#define KEY_UP_ARROW 0xDA #define KEY_DOWN_ARROW 0xD9 #define KEY_LEFT_ARROW 0xD8 #define KEY_RIGHT_ARROW 0xD7 #define KEY_BACKSPACE 0xB2 #define KEY_TAB 0xB3 #define KEY_RETURN 0xB0 #define KEY_ESC 0xB1 #define KEY_INSERT 0xD1 #define KEY_DELETE 0xD4 #define KEY_PAGE_UP 0xD3 #define KEY_PAGE_DOWN 0xD6 #define KEY_HOME 0xD2 #define KEY_END 0xD5 #define KEY_CAPS_LOCK 0xC1 #define KEY_F1 0xC2 #define KEY_F2 0xC3 #define KEY_F3 0xC4 #define KEY_F4 0xC5 #define KEY_F5 0xC6 #define KEY_F6 0xC7 #define KEY_F7 0xC8 #define KEY_F8 0xC9 #define KEY_F9 0xCA #define KEY_F10 0xCB #define KEY_F11 0xCC #define KEY_F12 0xCD #define KEY_F13 0xF0 #define KEY_F14 0xF1 #define KEY_F15 0xF2 #define KEY_F16 0xF3 #define KEY_F17 0xF4 #define KEY_F18 0xF5 #define KEY_F19 0xF6 #define KEY_F20 0xF7 #define KEY_F21 0xF8 #define KEY_F22 0xF9 #define KEY_F23 0xFA #define KEY_F24 0xFB
// Low level key report: up to 6 keys and shift, ctrl etc at once typedef struct { uint8_t modifiers; uint8_t reserved; uint8_t keys[6]; } KeyReport;
class Keyboard_ : public Print { private: KeyReport _keyReport; void sendReport(KeyReport* keys); public: Keyboard_(void); void begin(void); void end(void); size_t write(uint8_t k); size_t write(const uint8_t *buffer, size_t size); size_t press(uint8_t k); size_t release(uint8_t k); void releaseAll(void); }; extern Keyboard_ Keyboard;
#endif #endif
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd: Kov____ Писать в личку.
|
|
|
|
cirus |
22.11.2020, 18:37
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 27355
Пользователь №: 16.971
Возраст: 29
|
Архив распаковать, файл Arduino.lua положить в папку с пилотом
Arduino.zip ( 2,34 килобайт )
Кол-во скачиваний: 1213Скетч в архиве. Функции: Цитата delaykey(<ms>) - установить паузу между нажатиями клавиш клавиатуры delaymouse(<ms>) - установить паузу между нажатиями клавиш мыши ms - время в мсек. Цитата key(<code>) - нажать и отпустить клавишу клавиатуры, в том числе клавиши модификаторы text (<text>) - напечатать текст keydown (<code>) - зажать клавишу, в том числе клавиши модификаторы keyup (<code>) - отпустить клавишу, в том числе клавиши модификаторы code - код клавиши или константа text - текст, который нужно напечатать Цитата mousemove (<x>, <y>) - переместить курсор мыши mouse (<x>, <y>, [button]) - клик мыши mousedbl (<x>, <y>, [button]) - двойной клик мыши mousedown (<x>, <y>, [button]) - зажать кнопку мыши mouseup (<x>, <y>, [button]) - отпустить кнопку мыши x, y - абсолютные координаты, т. е. относительно левого верхнего угла экрана. button - кнопка мыши, необязательный параметр, по умолчанию левая кнопка мыши. Либо MOUSE_LEFT, MOUSE_RIGHT, MOUSE_MIDDLE Пример использования: Код --lua require'Arduino' COM = 7 -- номер порта
wait(3000) -- за это время переключиться на нужное приложение
delaykey(20) -- установить паузу между нажатиями клавиш text ('Hello!') -- напечатать текст key('X') -- напечатать X
keydown(KEY_LEFT_CTRL) -- зажать Ctrl key(KEY_LEFT_SHIFT) -- нажать Shift keyup(KEY_LEFT_CTRL) -- отпустить Ctrl
key(KEY_TAB) -- нажать Tab
delaykey(200) -- установить паузу между нажатиями клавиш text ('qwerty') -- напечатать текст
key(KEY_RETURN) -- нажать Enter Код --lua require'Arduino' COM = 7 -- номер порта
delaymouse(20) -- установить паузу между нажатием и отпусканием кнопок мыши
mousemove (200, 100) -- переместить курсор в координаты 200 100 mouse(40, 200, MOUSE_LEFT) -- клик левой кнопкой мыши mouse(200, 700) -- клик левой кнопкой мыши mouse(200, 700, MOUSE_RIGHT) -- клик правой кнопкой wait(2000)
mousedown(300, 30) -- зажать левую кнопку мыши mousemove (600, 30) -- переместить курсор mouseup(600, 30) -- отпустить кнопку мыши wait(500)
mousedbl(250, 400) -- двойной клик
|
|
|
|
Crocotea |
22.11.2020, 23:44
|
Novice
Сообщений: 51
Регистрация: 30.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.787
|
Цитата(cirus @ 22.11.2020, 18:37) Архив распаковать, файл Arduino.lua положить в папку с пилотом
Arduino.zip ( 2,34 килобайт )
Кол-во скачиваний: 1213Скетч в архиве. Функции: ms - время в мсек. code - код клавиши или константа text - текст, который нужно напечатать x, y - абсолютные координаты, т. е. относительно левого верхнего угла экрана. button - кнопка мыши, необязательный параметр, по умолчанию левая кнопка мыши. Либо MOUSE_LEFT, MOUSE_RIGHT, MOUSE_MIDDLE Пример использования: Код --lua require'Arduino' COM = 7 -- номер порта
wait(3000) -- за это время переключиться на нужное приложение
delaykey(20) -- установить паузу между нажатиями клавиш text ('Hello!') -- напечатать текст key('X') -- напечатать X
keydown(KEY_LEFT_CTRL) -- зажать Ctrl key(KEY_LEFT_SHIFT) -- нажать Shift keyup(KEY_LEFT_CTRL) -- отпустить Ctrl
key(KEY_TAB) -- нажать Tab
delaykey(200) -- установить паузу между нажатиями клавиш text ('qwerty') -- напечатать текст
key(KEY_RETURN) -- нажать Enter Код --lua require'Arduino' COM = 7 -- номер порта
delaymouse(20) -- установить паузу между нажатием и отпусканием кнопок мыши
mousemove (200, 100) -- переместить курсор в координаты 200 100 mouse(40, 200, MOUSE_LEFT) -- клик левой кнопкой мыши mouse(200, 700) -- клик левой кнопкой мыши mouse(200, 700, MOUSE_RIGHT) -- клик правой кнопкой wait(2000)
mousedown(300, 30) -- зажать левую кнопку мыши mousemove (600, 30) -- переместить курсор mouseup(600, 30) -- отпустить кнопку мыши wait(500)
mousedbl(250, 400) -- двойной клик видео теста всей системы, работает, но совершенно не так как нужно( Не показал, что занес все файлы в папку с пилотом, но эти действия все произвел Цитата(DarkMaster @ 22.11.2020, 15:07) https://github.com/arduino-libraries/Keyboa.../src/Keyboard.hпопробуйте B1 Там походу hid коды. Keyboard.h
Код /* Keyboard.h Copyright (c) 2015, Arduino LLC Original code (pre-library): Copyright (c) 2011, Peter Barrett This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
#ifndef KEYBOARD_h #define KEYBOARD_h
#include "HID.h"
#if !defined(_USING_HID)
#warning "Using legacy HID core (non pluggable)"
#else
// ================================================================================
// ================================================================================
// Keyboard
#define KEY_LEFT_CTRL 0x80 #define KEY_LEFT_SHIFT 0x81 #define KEY_LEFT_ALT 0x82 #define KEY_LEFT_GUI 0x83 #define KEY_RIGHT_CTRL 0x84 #define KEY_RIGHT_SHIFT 0x85 #define KEY_RIGHT_ALT 0x86 #define KEY_RIGHT_GUI 0x87
#define KEY_UP_ARROW 0xDA #define KEY_DOWN_ARROW 0xD9 #define KEY_LEFT_ARROW 0xD8 #define KEY_RIGHT_ARROW 0xD7 #define KEY_BACKSPACE 0xB2 #define KEY_TAB 0xB3 #define KEY_RETURN 0xB0 #define KEY_ESC 0xB1 #define KEY_INSERT 0xD1 #define KEY_DELETE 0xD4 #define KEY_PAGE_UP 0xD3 #define KEY_PAGE_DOWN 0xD6 #define KEY_HOME 0xD2 #define KEY_END 0xD5 #define KEY_CAPS_LOCK 0xC1 #define KEY_F1 0xC2 #define KEY_F2 0xC3 #define KEY_F3 0xC4 #define KEY_F4 0xC5 #define KEY_F5 0xC6 #define KEY_F6 0xC7 #define KEY_F7 0xC8 #define KEY_F8 0xC9 #define KEY_F9 0xCA #define KEY_F10 0xCB #define KEY_F11 0xCC #define KEY_F12 0xCD #define KEY_F13 0xF0 #define KEY_F14 0xF1 #define KEY_F15 0xF2 #define KEY_F16 0xF3 #define KEY_F17 0xF4 #define KEY_F18 0xF5 #define KEY_F19 0xF6 #define KEY_F20 0xF7 #define KEY_F21 0xF8 #define KEY_F22 0xF9 #define KEY_F23 0xFA #define KEY_F24 0xFB // Low level key report: up to 6 keys and shift, ctrl etc at once typedef struct { uint8_t modifiers; uint8_t reserved; uint8_t keys[6]; } KeyReport;
class Keyboard_ : public Print { private: KeyReport _keyReport; void sendReport(KeyReport* keys); public: Keyboard_(void); void begin(void); void end(void); size_t write(uint8_t k); size_t write(const uint8_t *buffer, size_t size); size_t press(uint8_t k); size_t release(uint8_t k); void releaseAll(void); }; extern Keyboard_ Keyboard;
#endif #endif B1-Работает sendKey (""..string.char (0xB1))-кликает esc
|
|
|
|
Crocotea |
22.11.2020, 23:51
|
Novice
Сообщений: 51
Регистрация: 30.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.787
|
Цитата(DarkMaster @ 22.11.2020, 23:49) Так а с чего оно писать будет? Это ескейп, который вы пытались сделать.
сообщение исправил, буквы местами поменял Кликает эск для теста пользовался ресурсом https://keycode.inicar.info/KeyCode/1_KeyCode.php
|
|
|
|
Crocotea |
22.11.2020, 23:58
|
Novice
Сообщений: 51
Регистрация: 30.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.787
|
Цитата(cirus @ 22.11.2020, 23:53) В архиве скетч, его вообще-то загрузить надо в устройство.
(IMG: style_emoticons/default/sad.gif) скетч в компилятор Адрино?
|
|
|
|
DarkMaster |
23.11.2020, 1:09
|
Модератор UOPilot
Сообщений: 9.596
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28803
Пользователь №: 11.279
|
cirus, теперь еще и с мышью. Круть. К нижеследующему прошу отнестись, как професионал, заслуг за написание не снимаю =)
Объявление в глобал функций не есть хорошо, возможны конфликты имен. Первые кандидаты: command, key, text, mouse. В целом в рамках луа как-то больше принято name = require'name' и имхо подобная модульность есть хорошо. Тут надо понимать, что это даже не обязательно функция должна быть. Например парсинг команды 'command' - вообще элементарно =) Кому сильно надо - развернут в глобал, а вот обратно ввернуть - проще переписать. Ну по сути 41 дефайн в глобал это тоже весьма сильно. Матом меня просьба не крыть)
Было ограничние на 63 имени не то в глобал не то в корень локалами. Тестами вроде все проходит, но когда-то точно на грабли вставал. Или это не jit?
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd: Kov____ Писать в личку.
|
|
|
|
Crocotea |
23.11.2020, 14:07
|
Novice
Сообщений: 51
Регистрация: 30.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.787
|
Цитата(cirus @ 23.11.2020, 1:17) Ну да, куда ещё-то. И загрузить в устройство.
DarkMaster, это скорее для теста выложено, потом дллку напишу.
Понял, скетч первый раз слышу этот термин, не знал, что с ним делать. Так видео теста: Вкратце все нажатия через key работают исправно. Есть 2 вопроса. Есть ли возможность сделать ряд кликов в одном key вподрят? Например key('555') - 3 пятерки. Второе, есть ли возможность на основные клавиши зажатия (шифт, контрл, альт) сделать спецсимволы (~@^). так как приходится вместо key('~s') вписывать keydown(KEY_LEFT_SHIFT) key ('333') keyup(KEY_LEFT_SHIFT) Клавиши f1,f2, esc,home... кликаются как key (''..string.char (0xB3)) (коды клавиш адруина выложил выше дарк мастер) По мыши. все команды с кликами работают, кроме перемещения курсора в нужные координаты, т.е клики левой, правой, даблклик работают, а мышь перемещается в хаотичные координаты, не в те которые указаны. Также как я понял команда mouse(200, 200) (и подобные) работает в 2 этапа. 1 это перемещение курсора, 2 это клик и задержка delaymause() влияет на время между этапами. Есть ли возможность убрать это влияние? так как delaymause(500) mouse(200, 200) mouse(200, 200) сделает не 2 клика раз в пол секунды, а раз в 1 секуду (перемещение,задержка,клик,задержка,перемещение,задержка,клик...)
|
|
|
|
cirus |
23.11.2020, 14:45
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 27355
Пользователь №: 16.971
Возраст: 29
|
Цитата key('~s') key('S') напишет большую букву. Если надо написать знак % то, key('%'). key принимает 1 клавишу, если надо нажать несколько вызывайте key для каждого символа. Либо через функцию: Код --lua require'Arduino' COM = 7 -- номер порта
function _key(text) for symbol in text:gmatch(".") do key(symbol) end end
wait(3000) -- за это время переключиться на нужное приложение delaykey(20) -- установить паузу между нажатиями клавиш _key('sssss') Цитата Клавиши f1,f2 key(KEY_F1) -- так key(0xC2) -- или так На счёт перемещения курсора ничего не могу сказать, у меня работает. В параметрах экрана масштаб 100%?. Цитата delaymause() влияет на время между этапами. Есть ли возможность убрать это влияние? Уберите паузы в скетче если они не нужны.
|
|
|
|
Crocotea |
23.11.2020, 15:21
|
Novice
Сообщений: 51
Регистрация: 30.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.787
|
Цитата(cirus @ 23.11.2020, 14:45) key('S') напишет большую букву. Если надо написать знак % то, key('%').
да, но если нужна именно шифт+2? не S или %. а нажатия клавиш с шифтом, альтом или контролом Цитата(cirus @ 23.11.2020, 14:45) key принимает 1 клавишу, если надо нажать несколько вызывайте key для каждого символа. Либо через функцию: Код --lua require'Arduino' COM = 7 -- номер порта
function _key(text) for symbol in text:gmatch(".") do key(symbol) end end
wait(3000) -- за это время переключиться на нужное приложение delaykey(20) -- установить паузу между нажатиями клавиш _key('sssss') key(KEY_F1) -- так key(0xC2) -- или так все работает Цитата(cirus @ 23.11.2020, 14:45) На счёт перемещения курсора ничего не могу сказать, у меня работает. В параметрах экрана масштаб 100%?.
Уберите паузы в скетче если они не нужны.
да 100%, скрин прикладываю(https://ibb.co/JQWBqPJ). Там не просто клик происходит с каким-то отклонением, а с течением времени меняются координаты. более подробно
|
|
|
|
DarkMaster |
23.11.2020, 17:55
|
Модератор UOPilot
Сообщений: 9.596
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28803
Пользователь №: 11.279
|
Цитата key принимает 1 клавишу, если надо нажать несколько вызывайте key для каждого символа. Либо через функцию: а text не работает что ли? Не выдержала душа) Убран режим блондинки(капс), все функции и объявления перенесены в локальные, использование через require. Arduino.lua
Код local export_array = {}
export_array.com = 5 -- номер порта export_array.delay_key = 20 -- пауза между нажатиями клавиш. Только чтение, изменение через set_delay_key. export_array.delay_mouse = 20 -- пауза между нажатием и отпусканием кнопок мыши. Только чтение, изменение через set_delay_mouse.
export_array.mouse_left_button = 1 export_array.mouse_right_button = 2 export_array.mouse_middle_button = 4
export_array.left_ctrl = 0x80 export_array.left_shift = 0x81 export_array.left_alt = 0x82 export_array.left_gui = 0x83 export_array.right_ctrl = 0x84 export_array.right_shift = 0x85 export_array.right_alt = 0x86 export_array.right_gui = 0x87 export_array.up_arrow = 0xDA export_array.down_arrow = 0xD9 export_array.left_arrow = 0xD8 export_array.right_arrow = 0xD7 export_array.backspace = 0xB2 export_array.tab = 0xB3 export_array["return"] = 0xB0 export_array.esc = 0xB1 export_array.insert = 0xD1 export_array.delete = 0xD4 export_array.page_up = 0xD3 export_array.page_down = 0xD6 export_array.home = 0xD2 export_array["end"] = 0xD5 export_array.caps_lock = 0xC1 export_array.f1 = 0xC2 export_array.f2 = 0xC3 export_array.f3 = 0xC4 export_array.f4 = 0xC5 export_array.f5 = 0xC6 export_array.f6 = 0xC7 export_array.f7 = 0xC8 export_array.f8 = 0xC9 export_array.f9 = 0xCA export_array.f10 = 0xCB export_array.f11 = 0xCC export_array.f12 = 0xCD export_array.F1 = 0xC2 export_array.F2 = 0xC3 export_array.F3 = 0xC4 export_array.F4 = 0xC5 export_array.F5 = 0xC6 export_array.F6 = 0xC7 export_array.F7 = 0xC8 export_array.F8 = 0xC9 export_array.F9 = 0xCA export_array.F10 = 0xCB export_array.F11 = 0xCC export_array.F12 = 0xCD
local command = function (text) local file = io.open("COM" .. tostring(COM),"w") if file then file:write(text) file:close() wait(#text * (export_array.delay_key + export_array.delay_key * 0.2)) -- количество символов * пауза + 20% else log('Порт не открылся, скрипт остановлен') end_script() end end
export_array.set_delay_key = function (ms) if type(tonumber(ms)) ~= 'number' then return end command ('00' .. tostring(ms)) export_array.delay_key = ms end
export_array.set_delay_mouse = function (ms) if type(tonumber(ms)) ~= 'number' then return end command ('01' .. tostring(ms)) export_array.delay_mouse = ms end
export_array.key = function (code) if type(code) == 'number' then command ('1' .. tostring(tonumber(code))) else command ('1' .. tostring(code:byte())) end end
export_array.text = function (text) command ('2' .. text) end
export_array.key_down = function (code) if type(code) == 'number' then command ('3' .. tostring(tonumber(code))) else command ('3' .. tostring(code:byte())) end end
export_array.key_up = function (code) if type(code) == 'number' then command ('4' .. tostring(tonumber(code))) else command ('4' .. tostring(code:byte())) end end
export_array.mouse = {}
export_array.mouse.move = function (x, y) local mouseX, mouseY = mouse_pos('abs') local znakX, znakY = '+', '+' if mouseX - x > 0 then znakX = '-' end if mouseY - y > 0 then znakY = '-' end command ('5' .. znakX .. znakY .. tostring(math.abs(mouseX - x) * 0xFFFF + math.abs(mouseY - y))) end
export_array.mouse.click = function (x, y, button) if button == nil then button = export_array.mouse_left_button end export_array.mouse.move(x, y) command ('6' .. tostring(button)) end
export_array.mouse.left = function (x, y) export_array.mouse.move(x, y) command ('6' .. tostring(export_array.mouse_left_button)) end
export_array.mouse.right = function (x, y) export_array.mouse.move(x, y) command ('6' .. tostring(export_array.mouse_right_button)) end
export_array.mouse.middle = function (x, y) export_array.mouse.move(x, y) command ('6' .. tostring(export_array.mouse_middle_button)) end
export_array.mouse.dbl = function (x, y, button) if button == nil then button = export_array.mouse_left_button end export_array.mouse.move(x, y) command ('6' .. tostring(button)) wait(100) command ('6' .. tostring(button)) end
export_array.mouse.left_dbl = function (x, y) export_array.mouse.move(x, y) command ('6' .. tostring(export_array.mouse_left_button)) wait(100) command ('6' .. tostring(export_array.mouse_left_button)) end
export_array.mouse.right_dbl = function (x, y) export_array.mouse.move(x, y) command ('6' .. tostring(export_array.mouse_right_button)) wait(100) command ('6' .. tostring(export_array.mouse_right_button)) end
export_array.mouse.middle_dbl = function (x, y) export_array.mouse.move(x, y) command ('6' .. tostring(export_array.mouse_middle_button)) wait(100) command ('6' .. tostring(export_array.mouse_middle_button)) end
export_array.mouse.down = function (x, y, button) if button == nil then button = export_array.mouse_left_button end export_array.mouse.move(x, y) command ('7' .. tostring(button)) end
export_array.mouse.left_down = function (x, y) export_array.mouse.move(x, y) command ('7' .. tostring(export_array.mouse_left_button)) end
export_array.mouse.right_down = function (x, y) export_array.mouse.move(x, y) command ('7' .. tostring(export_array.mouse_right_button)) end
export_array.mouse.middle_down = function (x, y) export_array.mouse.move(x, y) command ('7' .. tostring(export_array.mouse_middle_button)) end
export_array.mouse.up = function (x, y, button) if button == nil then button = export_array.mouse_left_button end command ('8' .. tostring(button)) end
export_array.mouse.left_up = function (x, y) command ('8' .. tostring(export_array.mouse_left_button)) end
export_array.mouse.right_up = function (x, y) command ('8' .. tostring(export_array.mouse_right_button)) end
export_array.mouse.middle_up = function (x, y) command ('8' .. tostring(export_array.mouse_middle_button)) end
return export_array
Настройки
Код -- Номер порта com = 5 -- Пауза между нажатиями клавиш. -- Только чтение, изменение через set_delay_key. delay_key = 20 -- Пауза между нажатием и отпусканием кнопок мыши. -- Только чтение, изменение через set_delay_mouse. delay_mouse = 20 Список многосимвольных клавиш
Код mouse_left_button = 1 mouse_right_button = 2 mouse_middle_button = 4
left_ctrl = 0x80 left_shift = 0x81 left_alt = 0x82 left_gui = 0x83 right_ctrl = 0x84 right_shift = 0x85 right_alt = 0x86 right_gui = 0x87 up_arrow = 0xDA down_arrow = 0xD9 left_arrow = 0xD8 right_arrow = 0xD7 backspace = 0xB2 tab = 0xB3 return = 0xB0 _return = 0xB0 enter= 0xB0 esc = 0xB1 insert = 0xD1 delete = 0xD4 page_up = 0xD3 page_down = 0xD6 home = 0xD2 end = 0xD5 _end = 0xD5 caps_lock = 0xC1 f1 = 0xC2 f2 = 0xC3 f3 = 0xC4 f4 = 0xC5 f5 = 0xC6 f6 = 0xC7 f7 = 0xC8 f8 = 0xC9 f9 = 0xCA f10 = 0xCB f11 = 0xCC f12 = 0xCD F1 = 0xC2 F2 = 0xC3 F3 = 0xC4 F4 = 0xC5 F5 = 0xC6 F6 = 0xC7 F7 = 0xC8 F8 = 0xC9 F9 = 0xCA F10 = 0xCB F11 = 0xCC F12 = 0xCD Список доступных функций
Код set_delay_key (ms) -- установить задержку нажатий клавиатуры set_delay_mouse (ms) -- установить задержку нажатий мыши key (code) -- нажать клавишу клавиатуры text (text) -- отослать текст key_down (code) -- зажать (не отжимая) клавишу клавиатуры key_up (code) -- отжать клавишу клавиатуры mouse.move (x, y) -- переместить мышь mouse.click (x, y, button) -- кликнуть мышью, button должен содержать код клавиши мыши mouse.left (x, y) -- кликунть левой кнопкой mouse.right (x, y) -- кликнуть правой кнопкой mouse.middle (x, y) -- кликнуть средней кнопкой mouse.dbl (x, y, button) -- двойной клик, button должен содержать код клавиши мыши mouse.left_dbl (x, y) -- двойной клик левой кнопкой мыши mouse.right_dbl (x, y) -- двойной клик правой кнопкой мыши mouse.middle_dbl (x, y) -- двойной клик средней кнопкой мыши mouse.down (x, y, button) -- зажать (не отжимая) кнопку мыши, button должен содержать код клавиши мыши mouse.left_down (x, y) -- зажать (не отжимая) левую кнопку мыши mouse.right_down (x, y) -- зажать (не отжимая) правую кнопку мыши mouse.middle_down (x, y) -- зажать (не отжимая) среднюю кнопку мыши mouse.up (x, y, button) -- отжать кнопку мыши, button должен содержать код клавиши мыши mouse.left_up (x, y) -- отжать левую кнопку мыши mouse.right_up (x, y) -- отжать правую кнопку мыши mouse.middle_up (x, y) -- отжать среднюю кнопку мыши Использование
Код local hw = require'arduino' hw.key("a") Сообщение отредактировал DarkMaster - 25.11.2020, 20:20
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd: Kov____ Писать в личку.
|
|
|
|
Crocotea |
23.11.2020, 20:55
|
Novice
Сообщений: 51
Регистрация: 30.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.787
|
Цитата(DarkMaster @ 23.11.2020, 20:28) на чьем скетче? любом скетче Достаточно просто запуска пилота для начала спама или нужно запустить какой-нибудь скрипт? именно скрипт вызывающий андруин
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|