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

> Pilot mod pack. Расширение функционала
DarkMaster
сообщение 26.7.2024, 18:34
Сообщение #1


***********

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



Пак функций переписанных на чистом luajit с существенным расширением функционала.
Планируется к дальнейшему расширению и включению в пилот по умолчанию. Можно счтиать бета версией. Крайне желательно получить фидбеки по функционалу, ошибкам и т.д.

По поводу мышки и клавиатуры. Для работы с неактивным окном рекомендуется post. Для работы с активным окном input.

Для использования выпонить:
Код
require"lua_system\\init"

Краткий список функций. Подробнее в readme.txt
Системные. Массив sys.
Код
    define            - безопасно объявить через cdef
    geterr            - получить последнюю ошибку
    indexof           - получить индекс элемента в массиве
    inpairs_sorted    - итератор аналогичный in pairs(), но в афаитном порядке
    ispilot           - яляется ли среда пилотом
    lg                - вывести содержимое в лог (в т.ч. таблицы)
    random_g          - случайное число с распределением по гауссу
    registryread      - прочитать ключ реестра
    utf16_to_ascii    - преобразовать UTF-16 в ASCII
    utf16_to_file     - записать UTF-16 в файл
    utf8_to_ascii     - преобразовать UTF-8 в ASCII
    utf8_to_utf16     - преобразовать UTF-8 в UTF-16
Процессы. Массив proc.
Код
    cd                - получить/установить текущую директорию
    getenvironment    - получить текущие переменные окружения
    exec              - запустить исполняемый файл
    execandwait       - запустить исполняемый файл и ждать выполнения
    execpipe          - запустить исполняемый файл и открыть пайпы
    exepath           - путь к исполняемому файлу
    setaffinity       - назначить ядра процессу
    setpriority       - установить приоритет процеса
    terminate         - уничтожить окно
Окна. Массив wnd.
Код
    findwindow        - найти окно
    getcontroltext    - получить текст контрола (кнопки)
    getfocus          - получить хэндл окна с фокусом клавиатуры
    getforeground     - получить активное окно
    getwindow         - получить окно относительно другого
    getwindowclass    - получить класс окна
    getwindowtext     - получить имя окна
    isvisible         - является ли окно невидимым
    postmessage       - отправить post сообщение окну
    sendmessage       - отправить send сообщение окну
    setcontroltext    - задать текст контрола (кнопки)
    setwindowtext     - задать имя окна
    showwindow        - показать/свернуть/развернуть/скрыть окно
    tohandle          - преобразовать число в хэндл
    windowfromcursor  - хэндл окна под курсором
    windowfrompoint   - хэндл окна в точке
    windowinfo        - получить информацию об окне
    windowpid         - получить PID окна
    windowpos         - получить позицию окна
    workwindow        - назначить рабочим окном
Мышь. Массив mouse.
Код
    mousepos          - получить текущие координаты мыши

    Методы кликов мышкой:
    post
    send
    event
    input

    Каждый из методов имеет следующие функции:

    move              - переместить мышь

    left              - кликнуть левой кнопкой
    left_double       - двойной клик левой кнопкой
    left_down         - нажать левую кнопку
    left_up           - отпустить левую кнопку

    right             - кликнуть правой кнопкой
    right_double      - двойной клик правой кнопкой
    right_down        - нажать правую кнопку
    right_up          - отпустить правую кнопку

    middle            - кликнуть средней кнопкой
    middle_double     - двойной клик средней кнопкой
    middle_down       - нажать среднюю кнопку
    middle_up         - отпустить средню кнопку

    m4                - кликнуть mouse4 кнопкой
    m4_double         - двойной клик mouse4 кнопкой
    m4_down           - нажать mouse4 кнопку
    m4_up             - отпустить mouse4 кнопку

    m5                - кликнуть mouse5 кнопкой
    m5_double         - двойной клик mouse5 кнопкой
    m5_down           - нажать mouse5 кнопку
    m5_up             - отпустить mouse5 кнопку

    wheel_down        - переместить колесо вниз
    wheel_up          - переместить колесо вверх
    wheel_left        - переместить колесо влево
    wheel_right       - переместить колесо вправо

    Методы имеют следующие опции:
    move_before_click - переместить мышь в точку клика
    move_after_click  - вернуть мышь после клика
    move_func         - функция перемещения мыши
    move_split        - разделять перемещение и клик (только input и event)
    timeout_inner     - задержка межу down и up
    timeout_outer     - задержка между up и down (не блокирующая)
    timeout_move      - задержка межу move и down
    mod_inner         - использовать флаг зажатия ctrl/shift вместо зажатия (только send и post)
    clock_up          - время последнего клика
Клавиатура. Массив kbd.
Код

    getlayout         - получить текущую раскладку клавиатуры
    getlayoutlist     - получить список доступных раскладок
    keystate          - получить состояние клавиши
    keystateasync     - получить состояние клавиши асинхронно.
    setlayout         - установить раскладку клавиатуры


    Методы отправки нажатий клавиатуры:
    send
    post
    event
    input

    Каждый из методов имеет следующие функции:
    key  - нажать и отпустить клавишу
    text - отправить текст
    down - нажать клавишу
    up   - отпустить клавишу
Время. Массив time.
Код

    clock_hp            - таймер с высоким разрешением
    clock_hp_int64      - таймер с высоким разрешением результат в int64
    clock_hp_resolution - количество тиков таймера с высоким разрешением в секунду
    clock_hp_result[0]  - результат выполнения clock_hp_int64()
    day                 - текущий день
    hour                - текущий час
    min                 - текущая минута
    month               - текущий месяц
    sec                 - текущая секунда
    sleep               - приостановить программу
    sleep_hp            - приостановить программу с высокой точностью
    sleep_random        - случайная пауза
    sleep_random_g      - случайная пауза с распределением по гауссу
    timer               - создать объект-таймер
    timestamp           - строковый таймштамп
    weekday             - текущий день недели
    year                - текущий год


Сообщение отредактировал DarkMaster - 7.3.2025, 18:45


Прикрепленные файлы
Прикрепленный файл  lua_system_3.0.0b.zip ( 264,66 килобайт ) Кол-во скачиваний: 238
Прикрепленный файл  lua_system_3.0.1b.zip ( 271,92 килобайт ) Кол-во скачиваний: 228
Прикрепленный файл  lua_system_3.0.2b.zip ( 306 килобайт ) Кол-во скачиваний: 171
Прикрепленный файл  lua_system_3.0.3b.zip ( 315,64 килобайт ) Кол-во скачиваний: 146
Прикрепленный файл  lua_system_3.0.4b.zip ( 302,32 килобайт ) Кол-во скачиваний: 102


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


*

Registred
Сообщений: 1
Регистрация: 21.9.2024
Группа: Пользователи
Наличность: 0
Пользователь №: 20.830
Возраст: 30



C привязкой через путь или имя окна реальная проблема. Пока корректная работа наблюдается только через pid окна. Так же давнешняя проблема, длинный путь к файлам пилот не воспринимал.

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

Сообщений в этой теме
DarkMaster   Pilot mod pack. Расширение функционала   26.7.2024, 18:34
DarkMaster   reserved   30.7.2024, 11:51
DarkMaster   Господа, я понимаю время, все такое. Но кто-нибудь...   30.7.2024, 12:08
Madeus   В отпуске буду скоро потыкаю пока нет времени к со...   30.7.2024, 14:52
nykep   как это использовать, где выполнить require"l...   31.7.2024, 4:13
DarkMaster   Так а кто спросить то не дает?) Закидываем папку l...   31.7.2024, 9:48
nykep   Кажется я упускаю что-то важное, строка require...   1.8.2024, 0:43
DarkMaster   Вот поэтому мне и нужны другие люди. Потому, что т...   1.8.2024, 9:22
DarkMaster   3.0.1b Добавлены функции кликов в event и input...   1.8.2024, 9:33
nykep   wnd.workwindow(nil, "Блокнот") ошибку не...   1.8.2024, 15:36
DarkMaster   Это просто пример. по workwindow. В lua все ...   1.8.2024, 16:32
nykep   --lua require"lua_system\\init" ...   1.8.2024, 17:58
DarkMaster   по методам. все: send post event input должны раб...   1.8.2024, 20:12
kyja   клик с зажатым ctrl тестил на total commander...   1.8.2024, 23:46
DarkMaster   а вот и не всегда. если речь идет о post или send...   2.8.2024, 0:05
DarkMaster   Что-нибудь получилось?   3.8.2024, 22:59
nykep   у меня move выдает ошибку и с post и с input, клик...   4.8.2024, 15:22
DarkMaster   странно. А привязка точно верно сделана? Там что ...   4.8.2024, 16:50
DarkMaster   Залил 3.0.2b с фиксами. Там же из нового: sleep_r...   4.8.2024, 17:35
nykep   с такой привязкой window = wnd.tohandle(132756) вр...   5.8.2024, 17:55
DarkMaster   он найдет основное окно. там же нужно отправлять ...   5.8.2024, 18:31
nykep   Короче говоря window = wnd.tohandle(132756) привяз...   6.8.2024, 2:04
DarkMaster   первые два и не должны ибо там нужно привязывать ...   6.8.2024, 3:01
DarkMaster   Похоже нашел в чем проблема. Ты привязку к окну пр...   6.8.2024, 17:38
nykep   я всегда пытаюсь делать привязку к окну, я же гово...   6.8.2024, 18:39
DarkMaster   понял. А если через tohandle в то же родительское ...   6.8.2024, 18:46
nykep   ошибка происходит когда я не использую handle. Вот...   6.8.2024, 19:29
DarkMaster   Warning, can't apply a workwindow. 0 ERROR_SUC...   6.8.2024, 19:46
nykep   да, есть такая ошибка в логе. У меня оказывается и...   6.8.2024, 20:47
DarkMaster   есть такое. причем в текст если тыкает, то клик од...   6.8.2024, 21:01
DarkMaster   Поправил. Там еще мышь не возвращалась в input. Чу...   6.8.2024, 22:18
DarkMaster   Код можно? И фактическое имя окна. Очень сложно п...   21.9.2024, 9:16
фонарик   Здравствуйте. Подскажите пожалуйста, а такие функц...   24.9.2024, 1:18
DarkMaster   так я же выкладывал хинт. промпт не уверен. созда...   24.9.2024, 9:33
фонарик   оно cdata должно быть, а не number. log(tonumber(r...   24.9.2024, 23:16
DarkMaster   --lua require"lua_system\\init...   25.9.2024, 0:16
фонарик   Попробуйте открыть блокнот и выполнить мой код. Чт...   25.9.2024, 21:36
DarkMaster   я же обновил версию после твоего поста. краш при ...   25.9.2024, 22:11
фонарик   я же обновил версию после твоего поста. краш при о...   25.9.2024, 22:48
DarkMaster   log(tonumber(ffi.cast("int", (arr.handl...   25.9.2024, 23:07
фонарик   Так упасть не должно. Еще раз. Если во время хинта...   26.9.2024, 0:18
DarkMaster   В рамках данного расширения бессмысленно. Все фун...   26.9.2024, 1:00
фонарик   Попробуй вызвать hint.destroy() перед завершением ...   27.9.2024, 22:27
DarkMaster   hint.hide() hint.destroy() а так? У меня просто в...   27.9.2024, 22:36
фонарик   hint.hide() hint.destroy() а так? Может я что-то...   28.9.2024, 15:43
DarkMaster   Я сейчас очень загружен. Сделаю стенд, будут подро...   28.9.2024, 18:01
DarkMaster   3.0.3b mouse модуль добавлено сообщение о битом х...   19.10.2024, 19:32
Opener   [code]3.0.3b a runtime error. .\lua_system...   5.11.2024, 15:18
DarkMaster   ой. ща перевыложу. Кусок недописанный остался. пр...   5.11.2024, 16:01
DarkMaster   3.0.4b wnd модуль windowpos - выставлен флаг repa...   6.3.2025, 14:20


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

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