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

8 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> Pilot + Arduino (Hardware clicker)
Crocotea
сообщение 22.11.2020, 13:53
Сообщение #41


***

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



Цитата(Cockney @ 22.11.2020, 13:31) *

что именно не так работает ?


Стоит вопрос как нажимать клавиши f1,f2,esc,space и тд
Дарк подсказал через 0xЦиферка, но не але*(
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.11.2020, 15:07
Сообщение #42


***********

Модератор 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____
Писать в личку.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.11.2020, 18:37
Сообщение #43


**********

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)    -- двойной клик
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Crocotea
сообщение 22.11.2020, 23:44
Сообщение #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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.11.2020, 23:49
Сообщение #45


***********

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



Цитата
sendKey (""..string.char (0x1B))-не пишет ничего

Так а с чего оно писать будет? Это ескейп, который вы пытались сделать.


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


***

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



Цитата(DarkMaster @ 22.11.2020, 23:49) *

Так а с чего оно писать будет? Это ескейп, который вы пытались сделать.


сообщение исправил, буквы местами поменял
Кликает эск
для теста пользовался ресурсом https://keycode.inicar.info/KeyCode/1_KeyCode.php
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.11.2020, 23:53
Сообщение #47


**********

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



Цитата
Не показал, что занес все файлы в папку с пилотом, но эти действия все произвел

В архиве скетч, его вообще-то загрузить надо в устройство.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Crocotea
сообщение 22.11.2020, 23:58
Сообщение #48


***

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



Цитата(cirus @ 22.11.2020, 23:53) *

В архиве скетч, его вообще-то загрузить надо в устройство.


(IMG:style_emoticons/default/sad.gif)
скетч в компилятор Адрино?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 23.11.2020, 0:11
Сообщение #49


********

Master
Сообщений: 1.402
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22059
Пользователь №: 16.156



Цитата(cirus @ 22.11.2020, 18:37) *

Архив распаковать, файл Arduino.lua положить в папку с пилотом Прикрепленный файл  Arduino.zip ( 2,34 килобайт ) Кол-во скачиваний: 1213





Эххх....вот бы чуть раньше на пару итераций моих потуг.......
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.11.2020, 1:09
Сообщение #50


***********

Модератор 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____
Писать в личку.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.11.2020, 1:17
Сообщение #51


**********

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



Цитата
скетч в компилятор Адрино?

Ну да, куда ещё-то. И загрузить в устройство.

DarkMaster, это скорее для теста выложено, потом дллку напишу.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.11.2020, 2:00
Сообщение #52


***********

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



Цитата
DarkMaster, это скорее для теста выложено, потом дллку напишу.

Хз. Как по мне смысла нет. Ничего вычислительно нагруженного нет, проблем с совместимостью тоже. Причесать и ничего лучше уже и не надо. И код открытый =)


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


***

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


**********

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() влияет на время между этапами. Есть ли возможность убрать это влияние?

Уберите паузы в скетче если они не нужны.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Crocotea
сообщение 23.11.2020, 15:21
Сообщение #55


***

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). Там не просто клик происходит с каким-то отклонением, а с течением времени меняются координаты.
более подробно
[+]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.11.2020, 17:55
Сообщение #56


***********

Модератор 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____
Писать в личку.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.11.2020, 18:39
Сообщение #57


***********

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



Обновлен Arduino.lua


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


***********

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



Цитата
Цитата
Цитата
Цитата
дело не в ваших кода. я втыкаю железку и идет спам 1000кнопок одновременно

на чьем скетче?



любом скетче
[+]

Достаточно просто запуска пилота для начала спама или нужно запустить какой-нибудь скрипт?

Сообщение отредактировал DarkMaster - 23.11.2020, 20:33


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


***

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



Столкнулся с проблемой. При загрузке ЛЮБОГО парсинга/скетча кликер начинает спамить непонятно что и нажимать все в подряд. Переустановил драйвера, компилятор
По отдельности работают без проблем. Конфликтуют при запуске скрипта в пилоте

Подробнее
[+]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Crocotea
сообщение 23.11.2020, 20:55
Сообщение #60


***

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



Цитата(DarkMaster @ 23.11.2020, 20:28) *

на чьем скетче?
любом скетче
[+]

Достаточно просто запуска пилота для начала спама или нужно запустить какой-нибудь скрипт?


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

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

 

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