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

7 страниц V « < 5 6 7  
Ответить в эту темуОткрыть новую тему
> Arduino, Нажатия мыши и клавиатуры в обход защиты от кликеров
DarkMaster
сообщение 8.7.2023, 17:23
Сообщение #121


***********

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



А через мой дебаг запускал? На какой строке в arduino.lua зависает? Ну либо сам найди номер строки. Там проще будет. Я то думал, что скрипт работает, а железка просто игнорит команды - это сложно без железки диагностировать, а тут уже есть с чем работать.

Мне чет кажется оно будет бесконечно крутить:
Код

    repeat
        COMport = ffi.cast('int', ffi.C.CreateFileA('\\.\\COM' .. tostring(export_array.com), GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, nil))
        if COMport == INVALID_HANDLE_VALUE then wait (1) end
    until COMport ~= INVALID_HANDLE_VALUE


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


****

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



Цитата(DarkMaster @ 8.7.2023, 17:23) *

А через мой дебаг запускал? На какой строке в arduino.lua зависает? Ну либо сам найди номер строки. Там проще будет. Я то думал, что скрипт работает, а железка просто игнорит команды - это сложно без железки диагностировать, а тут уже есть с чем работать.

Мне чет кажется оно будет бесконечно крутить:
Код

    repeat
        COMport = ffi.cast('int', ffi.C.CreateFileA('\\.\\COM' .. tostring(export_array.com), GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, nil))
        if COMport == INVALID_HANDLE_VALUE then wait (1) end
    until COMport ~= INVALID_HANDLE_VALUE


Запустил, именно этот кусок он и крутит.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.7.2023, 16:49
Сообщение #123


***********

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



порт открыть он не может. Попробуй ручками дописать номер порта вместо tostring(export_array.com) либо вообще задать порт строкой, можно попробовать задать его аналогично io.open
открыть он не может порт этот.
так же было бы совсем не лишним посмотреть правильно ли он находит номер порта и вывести в лог export_array.com

https://learn.microsoft.com/en-us/windows/w...api-createfilea
тут можно почитать про параметры с которыми можно поиграть.


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


****

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



Цитата(DarkMaster @ 9.7.2023, 16:49) *

порт открыть он не может. Попробуй ручками дописать номер порта вместо tostring(export_array.com) либо вообще задать порт строкой, можно попробовать задать его аналогично io.open
открыть он не может порт этот.
так же было бы совсем не лишним посмотреть правильно ли он находит номер порта и вывести в лог export_array.com

https://learn.microsoft.com/en-us/windows/w...api-createfilea
тут можно почитать про параметры с которыми можно поиграть.

Ком порт он определяет правильно. В общем проблема была в пути к ком порту, не нужны там \\.\\
Строка должна выглядеть так для windows 11

COMport = ffi.cast('int', ffi.C.CreateFileA('COM' .. tostring(export_array.com), GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, nil))

Спасибо, что напомнил про dbg и ткнул куда копать)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.7.2023, 16:16
Сообщение #125


***********

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



хочу предостеречь про \\.\ - без этого НЕ должно работать для портов выше COM9. По сути для 1-9 происходит преобразование в полный путь. Для портов с бОльшими номерами его нет.


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


***********

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



попробуй такой префикс:
\\\\.\\


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


****

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



\\\\.\\ Так же работает.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.7.2023, 18:41
Сообщение #128


***********

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



Это была ошибка изначально.
Там должно быть вообще:
\\.\COM*
но все \ нужно удваивать для экранирования. Соответственно в одном месте был экран, во втором нет.

Cirus, поправь, пожалуйста исходник. Я могу перезалить, но только в свой отдельный пост.


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


**

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



Цитата(DarkMaster @ 10.7.2023, 18:41) *

Это была ошибка изначально.
Там должно быть вообще:
\\.\COM*
но все \ нужно удваивать для экранирования. Соответственно в одном месте был экран, во втором нет.

А что насчёт звёздочки после COM? (IMG:style_emoticons/default/huh.gif)
'\\\\.\\COM*' должно быть или '\\\\.\\COM' ?

И раз уж привлёк внимание, как нажимать end? Строка в arduino.lua: export_array["end"] = 0xD5. Могу, конечно, переименовать во что-то отличное от end, но просто интересно как это сделать с таким "синтаксисом".
А так же клавиши / и * с нумпада, точнее не могу найти их кодов для этого драйвера.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.7.2023, 22:49
Сообщение #130


***********

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



извездочка подразумевалась под замену номером порта.

Код

--lua
local key = {
    mouse_1 = 0x01, -- VK_LBUTTON Left mouse button
    mouse_2 = 0x02, -- VK_RBUTTON Right mouse button
    --0x03 -- VK_CANCEL Control-break processing
    mouse_middle = 0x04, -- VK_MBUTTON Middle mouse button (three-button mouse)
    mouse_4 = 0x05, -- VK_XBUTTON1 X1 mouse button
    mouse_5 = 0x06, -- VK_XBUTTON2 X2 mouse button
    --0x07 -- Undefined
    backspace = 0x08, -- VK_BACK BACKSPACE key
    tab = 0x09, -- VK_TAB TAB key
    --0x0A-0B -- Reserved
    --0x0C -- VK_CLEAR CLEAR key
    enter = 0x0D, -- VK_RETURN ENTER key
    --0x0E-0F -- Undefined
    shift = 0x10, -- VK_SHIFT SHIFT key
    ctrl = 0x11, -- VK_CONTROL CTRL key
    alt = 0x12, -- VK_MENU ALT key
    pause = 0x13, -- VK_PAUSE PAUSE key
    caps_lock = 0x14, -- VK_CAPITAL CAPS LOCK key
    --0x15 -- VK_KANA IME Kana mode
    --0x15 -- VK_HANGUEL IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
    --0x15 -- VK_HANGUL IME Hangul mode
    --0x16 -- Undefined
    --0x17 -- VK_JUNJA IME Junja mode
    --0x18 -- VK_FINAL IME final mode
    --0x19 -- VK_HANJA IME Hanja mode
    --0x19 -- VK_KANJI IME Kanji mode
    --0x1A -- Undefined
    esc = 0x1B, -- VK_ESCAPE ESC key
    escape = 0x1B, -- VK_ESCAPE ESC key
    --0x1C -- VK_CONVERT IME convert
    --0x1D -- VK_NONCONVERT IME nonconvert
    --0x1E -- VK_ACCEPT IME accept
    --0x1F -- VK_MODECHANGE IME mode change request
    spacebar = 0x20, -- VK_SPACE SPACEBAR
    page_up = 0x21, -- VK_PRIOR PAGE UP key
    page_down = 0x22, -- VK_NEXT PAGE DOWN key
    ["end"] = 0x23, -- VK_END END key
    _end = 0x23, -- VK_END END key
    home = 0x24, -- VK_HOME HOME key
    left = 0x25, -- VK_LEFT LEFT ARROW key
    up = 0x26, -- VK_UP UP ARROW key
    right = 0x27, -- VK_RIGHT RIGHT ARROW key
    down = 0x28, -- VK_DOWN DOWN ARROW key
    --0x29 -- VK_SELECT SELECT key
    --0x2A -- VK_PRINT PRINT key
    --0x2B -- VK_EXECUTE EXECUTE key
    print_screen = 0x2C, -- VK_SNAPSHOT PRINT SCREEN key
    insert = 0x2D, -- VK_INSERT INS key
    delete = 0x2E, -- VK_DELETE DEL key
    --0x2F -- VK_HELP HELP key
    ["0"] = 0x30, -- 0 key
    ["1"] = 0x31, -- 1 key
    ["2"] = 0x32, -- 2 key
    ["3"] = 0x33, -- 3 key
    ["4"] = 0x34, -- 4 key
    ["5"] = 0x35, -- 5 key
    ["6"] = 0x36, -- 6 key
    ["7"] = 0x37, -- 7 key
    ["8"] = 0x38, -- 8 key
    ["9"] = 0x39, -- 9 key
    --0x3A-40 -- Undefined
    a = 0x41, -- A key
    b = 0x42, -- B key
    c = 0x43, -- C key
    d = 0x44, -- D key
    e = 0x45, -- E key
    f = 0x46, -- F key
    g = 0x47, -- G key
    h = 0x48, -- H key
    i = 0x49, -- I key
    j = 0x4A, -- J key
    k = 0x4B, -- K key
    l = 0x4C, -- L key
    m = 0x4D, -- M key
    n = 0x4E, -- N key
    o = 0x4F, -- O key
    p = 0x50, -- P key
    q = 0x51, -- Q key
    r = 0x52, -- R key
    s = 0x53, -- S key
    t = 0x54, -- T key
    u = 0x55, -- U key
    v = 0x56, -- V key
    w = 0x57, -- W key
    x = 0x58, -- X key
    y = 0x59, -- Y key
    z = 0x5A, -- Z key
    A = 0x41, -- A key
    B = 0x42, -- B key
    C = 0x43, -- C key
    D = 0x44, -- D key
    E = 0x45, -- E key
    F = 0x46, -- F key
    G = 0x47, -- G key
    H = 0x48, -- H key
    I = 0x49, -- I key
    J = 0x4A, -- J key
    K = 0x4B, -- K key
    L = 0x4C, -- L key
    M = 0x4D, -- M key
    N = 0x4E, -- N key
    O = 0x4F, -- O key
    P = 0x50, -- P key
    Q = 0x51, -- Q key
    R = 0x52, -- R key
    S = 0x53, -- S key
    T = 0x54, -- T key
    U = 0x55, -- U key
    V = 0x56, -- V key
    W = 0x57, -- W key
    X = 0x58, -- X key
    Y = 0x59, -- Y key
    Z = 0x5A, -- Z key
    win = 0x5B, -- VK_LWIN Left Windows key (Natural keyboard)
    --0x5C -- VK_RWIN Right Windows key (Natural keyboard)
    --0x5D -- VK_APPS Applications key (Natural keyboard)
    --0x5E -- Reserved
    sleep = 0x5F, -- VK_SLEEP Computer Sleep key
    num_0 = 0x60, -- VK_NUMPAD0 Numeric keypad 0 key
    num_1 = 0x61, -- VK_NUMPAD1 Numeric keypad 1 key
    num_2 = 0x62, -- VK_NUMPAD2 Numeric keypad 2 key
    num_3 = 0x63, -- VK_NUMPAD3 Numeric keypad 3 key
    num_4 = 0x64, -- VK_NUMPAD4 Numeric keypad 4 key
    num_5 = 0x65, -- VK_NUMPAD5 Numeric keypad 5 key
    num_6 = 0x66, -- VK_NUMPAD6 Numeric keypad 6 key
    num_7 = 0x67, -- VK_NUMPAD7 Numeric keypad 7 key
    num_8 = 0x68, -- VK_NUMPAD8 Numeric keypad 8 key
    num_9 = 0x69, -- VK_NUMPAD9 Numeric keypad 9 key
    ["num_*"] = 0x6A,
    num_multiply = 0x6A, -- VK_MULTIPLY Multiply key
    ["num_+"] = 0x6B,
    num_plus = 0x6B, -- VK_ADD Add key
    --0x6C -- VK_SEPARATOR Separator key
    ["num_-"] = 0x6D,
    num_minus = 0x6D, -- VK_SUBTRACT Subtract key
    ["num_."] = 0x6E,
    num_del = 0x6E, -- VK_DECIMAL Decimal key
    ["num_/"] = 0x6F,
    num_devide = 0x6F,
    num_slash = 0x6F, -- VK_DIVIDE Divide key
    F1 = 0x70, -- VK_F1 F1 key
    F2 = 0x71, -- VK_F2 F2 key
    F3 = 0x72, -- VK_F3 F3 key
    F4 = 0x73, -- VK_F4 F4 key
    F5 = 0x74, -- VK_F5 F5 key
    F6 = 0x75, -- VK_F6 F6 key
    F7 = 0x76, -- VK_F7 F7 key
    F8 = 0x77, -- VK_F8 F8 key
    F9 = 0x78, -- VK_F9 F9 key
    F10 = 0x79, -- VK_F10 F10 key
    F11 = 0x7A, -- VK_F11 F11 key
    F12 = 0x7B, -- VK_F12 F12 key
    F13 = 0x7C, -- VK_F13 F13 key
    F14 = 0x7D, -- VK_F14 F14 key
    F15 = 0x7E, -- VK_F15 F15 key
    F16 = 0x7F, -- VK_F16 F16 key
    F17 = 0x80, -- VK_F17 F17 key
    F18 = 0x81, -- VK_F18 F18 key
    F19 = 0x82, -- VK_F19 F19 key
    F20 = 0x83, -- VK_F20 F20 key
    F21 = 0x84, -- VK_F21 F21 key
    F22 = 0x85, -- VK_F22 F22 key
    F23 = 0x86, -- VK_F23 F23 key
    F24 = 0x87, -- VK_F24 F24 key
    f1 = 0x70, -- VK_F1 F1 key
    f2 = 0x71, -- VK_F2 F2 key
    f3 = 0x72, -- VK_F3 F3 key
    f4 = 0x73, -- VK_F4 F4 key
    f5 = 0x74, -- VK_F5 F5 key
    f6 = 0x75, -- VK_F6 F6 key
    f7 = 0x76, -- VK_F7 F7 key
    f8 = 0x77, -- VK_F8 F8 key
    f9 = 0x78, -- VK_F9 F9 key
    f10 = 0x79, -- VK_F10 F10 key
    f11 = 0x7A, -- VK_F11 F11 key
    f12 = 0x7B, -- VK_F12 F12 key
    f13 = 0x7C, -- VK_F13 F13 key
    f14 = 0x7D, -- VK_F14 F14 key
    f15 = 0x7E, -- VK_F15 F15 key
    f16 = 0x7F, -- VK_F16 F16 key
    f17 = 0x80, -- VK_F17 F17 key
    f18 = 0x81, -- VK_F18 F18 key
    f19 = 0x82, -- VK_F19 F19 key
    f20 = 0x83, -- VK_F20 F20 key
    f21 = 0x84, -- VK_F21 F21 key
    f22 = 0x85, -- VK_F22 F22 key
    f23 = 0x86, -- VK_F23 F23 key
    f24 = 0x87, -- VK_F24 F24 key
    --0x88-8F -- Unassigned
    num_lock = 0x90, -- VK_NUMLOCK NUM LOCK key
    scroll_lock = 0x91, -- VK_SCROLL SCROLL LOCK key
    --0x92-96 -- OEM specific
    --0x97-9F -- Unassigned
    shift_left = 0xA0, -- VK_LSHIFT Left SHIFT key
    shift_right = 0xA1, -- VK_RSHIFT Right SHIFT key
    ctrl_left = 0xA2, -- VK_LCONTROL Left CONTROL key
    ctrl_right = 0xA3, -- VK_RCONTROL Right CONTROL key
    menu_left = 0xA4, -- VK_LMENU Left MENU key
    menu_right = 0xA5, -- VK_RMENU Right MENU key
    browser_back = 0xA6, -- VK_BROWSER_BACK Browser Back key
    browser_forward = 0xA7, -- VK_BROWSER_FORWARD Browser Forward key
    browser_refresh = 0xA8, -- VK_BROWSER_REFRESH Browser Refresh key
    browser_stop = 0xA9, -- VK_BROWSER_STOP Browser Stop key
    browser_search = 0xAA, -- VK_BROWSER_SEARCH Browser Search key
    browser_favorites = 0xAB, -- VK_BROWSER_FAVORITES Browser Favorites key
    browser_home = 0xAC, -- VK_BROWSER_HOME Browser Start and Home key
    mute = 0xAD, -- VK_VOLUME_MUTE Volume Mute key
    volume_down = 0xAE, -- VK_VOLUME_DOWN Volume Down key
    volume_up = 0xAF, -- VK_VOLUME_UP Volume Up key
    media_next = 0xB0, -- VK_MEDIA_NEXT_TRACK Next Track key
    media_prev = 0xB1, -- VK_MEDIA_PREV_TRACK Previous Track key
    media_stop = 0xB2, -- VK_MEDIA_STOP Stop Media key
    media_play = 0xB3, -- VK_MEDIA_PLAY_PAUSE Play/Pause Media key
    media_pasue = 0xB3, -- VK_MEDIA_PLAY_PAUSE Play/Pause Media key
    launch_mail = 0xB4, -- VK_LAUNCH_MAIL Start Mail key
    launch_media = 0xB5, -- VK_LAUNCH_MEDIA_SELECT Select Media key
    launch_app_1 = 0xB6, -- VK_LAUNCH_APP1 Start Application 1 key
    launch_app_2 = 0xB6, -- VK_LAUNCH_APP1 Start Application 2 key
    --0xB8-B9 -- Reserved
    [";"] = 0xBA, -- VK_OEM_1 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key
    [":"] = 0xBA, -- VK_OEM_1 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key
    ["+"] = 0xBB, -- VK_OEM_PLUS For any country/region, the '+' key
    [","] = 0xBC, -- VK_OEM_COMMA For any country/region, the ',' key
    ["-"] = 0xBD, -- VK_OEM_MINUS For any country/region, the '-' key
    ["."] = 0xBE, -- VK_OEM_PERIOD For any country/region, the '.' key
    ["/"] = 0xBF, -- VK_OEM_2 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key
    ["?"] = 0xBF, -- VK_OEM_2 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key
    ["`"] = 0xC0, -- VK_OEM_3 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key
    ["~"] = 0xC0, -- VK_OEM_3 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key
    --0xC1-D7 -- Reserved
    --0xD8-DA -- Unassigned
    ["["] = 0xDB, -- VK_OEM_4 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key
    ["{"] = 0xDB, -- VK_OEM_4 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key
    ["\\"] = 0xDC, -- VK_OEM_5 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '\|' key
    ["|"] = 0xDC, -- VK_OEM_5 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '\|' key
    ["]"] = 0xDD, -- VK_OEM_6 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key
    ["}"] = 0xDD, -- VK_OEM_6 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key
    ["'"] = 0xDE, -- VK_OEM_7 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key
    ['"'] = 0xDE, -- VK_OEM_7 Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key
    --0xDF -- VK_OEM_8 Used for miscellaneous characters; it can vary by keyboard.
    --0xDF -- VK_OEM_8 Used for miscellaneous characters; it can vary by keyboard.
    --0xE0 -- Reserved
    --0xE1 -- OEM specific
    --0xE2 -- VK_OEM_102 Either the angle bracket key or the backslash key on the RT 102-key keyboard
    --0xE3-E4 -- OEM specific
    --0xE5 -- VK_PROCESSKEY IME PROCESS key
    --0xE6 -- OEM specific
    --0xE7 -- VK_PACKET Used to pass Unicode characters as if they were keystrokes.
    -- The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods.
    -- For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
    --0xE8 -- Unassigned
    --0xE9-F5 -- OEM specific
    --0xF6 -- VK_ATTN Attn key
    --0xF7 -- VK_CRSEL CrSel key
    --0xF8 -- VK_EXSEL ExSel key
    --0xF9 -- VK_EREOF Erase EOF key
    play = 0xFA, -- VK_PLAY Play key
    zoom = 0xFB, -- VK_ZOOM Zoom key
    --0xFC -- VK_NONAME Reserved
    --0xFD -- VK_PA1 PA1 key
    --0xFE -- VK_OEM_CLEAR Clear key
}

return key


когда-то писал себе хоткеи.

для тяжелых случаев можете детектор использовать:
Код


--lua
local dbg           = require[[lua_plugins\mydbg]]
local ffi           = require[[ffi]]
local rmem          = ffi.cast
print = log
print "clear"
print "mode compact"
local cfg, fi, open, click = {},{},{},{}



local winapi
do
    -- У меня пути не стандартные, чтобы избежать свинарника.
    -- Поэтому тут есть пара "лишних" строк.
    -- Сохраняем _текущие_ пути по которым ищутся модули.
    local back = package.path
    -- Дописываю путь по которому у меня лежат модули.
    package.path = "lua_plugins\\winapi\\?.lua;"..package.path
    -- Подгружаем собственно модуль.
    -- Хз почему, но грузить нужно именно так.
    -- Просто require 'winapi' не пашет.
    winapi = require 'winapi'
    --ext.lg(winapi)
    -- Подгружаем кусок отвечающий за клавиатуру
    require[[winapi.keyboard]]
    -- Возвращаем пути поиска модулей на исходные.
    package.path = back

end

-- Поолучаем состояние клавиши:
-- state - нажата/отжата
-- toggle - для лампочек горит/не горит.
--local state, toggle = GetKeyState(0x14)
--log(tostring(state),tostring(toggle))

local state_arr = {}


while 1 do
    for i = 0, 255 do
        local state, toggle = winapi.GetKeyState(i)
        if state and not state_arr[i] then
            state_arr[i] = true
            log(string.format("%.3f", os.clock())..": "..i.." down")
        elseif not state and state_arr[i] then
            state_arr[i] = false
            log(string.format("%.3f", os.clock())..": "..i.." up")
        end
    end
    wait(1)
end




Сообщение отредактировал DarkMaster - 20.11.2023, 6:53


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


**

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



Коды не те, но я нашёл вот тут.
Для / и * с нумпада это 0xDC и 0xDD.
Но я так и не понял зачем это в файле arduino.lua: export_array["end"] = 0xD5 и как это написать в скрипте. hw.key (hw. а дальше что? Я просто не в курсе синтаксиса, но пробовал разные варианты - ничего не работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 24.7.2023, 20:20
Сообщение #132


****

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



Цитата(Kangoshi @ 24.7.2023, 19:34) *

Коды не те, но я нашёл вот тут.
Для / и * с нумпада это 0xDC и 0xDD.
Но я так и не понял зачем это в файле arduino.lua: export_array["end"] = 0xD5 и как это написать в скрипте. hw.key (hw. а дальше что? Я просто не в курсе синтаксиса, но пробовал разные варианты - ничего не работает.

hw.key(hw.end) или hw.key(hw['end'])
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Kangoshi
сообщение 25.7.2023, 13:36
Сообщение #133


**

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



Цитата(Madeus @ 24.7.2023, 20:20) *

hw.key(hw.end) или hw.key(hw['end'])

1 вариант выдаёт ошибку синтаксиса '<name>' expected near 'end', 2 вариант работает, благодарю. Не догадался кавычки сменить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zOrky
сообщение 19.11.2023, 18:34
Сообщение #134


*

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



Здравствуйте. Все сделал как в инструкции на 1 странице. Но непонятно что писать в скрипте самого UO Pilot? -lua он не читает если тупо скопировать туда текст из вкладки "Пример использования клавиатуры"

Задача: Нужно настроить срабатывания макроса на кнопке F3, чтобы персонаж в окне брало ассист и атаковал цель.
Спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.11.2023, 6:54
Сообщение #135


***********

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



Цитата
-lua он не читает

там два дефиса должно быть.
--lua

пилот должен быть последней версии.


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

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

 

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