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

> Аналог
Levo222
сообщение 4.8.2019, 23:46
Сообщение #1


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Помогите составить аналог на Lua замены клавиш в запущенной программе
Есть вот такой на AHK но там много других заморочек, другой синтаксис и много других причин по которым на AHK я сидеть не хочу

1
Код
#SingleInstance force
#InstallKeybdHook
#InstallMouseHook
#NoEnv
SendMode InputThenPlay

SetTimer, wr
return

wr:
WinGet, pname, ProcessName, A
if pname = Programma.exe
{
suspend, off
}
else
{
suspend, on
}
return

;сам биндинг клавиш

Enter::p
MButton::o
XButton1::i

Смысл такой
Цитата
создаёт хук клавиатуры и мышки, заставляя ловить на лету нажатия нужных клавиш (только тех, которые используются в скрипте) и передавать их программе уже как другие клавиши.
переназначение клавиш будет включаться через 2.5 секунды после входа в игру и выключаться через 2.5 сек после выхода.


Как можно сделать на Lua аналог?


ну а я начну с уже известного мне

2
Код
--lua
--Включение(Num_Lock)
do
local back = package.path
package.path = "luaPlugins\\winapi\\?.lua;"..package.path
setfenv(1, require'winapi')
require[[winapi.keyboard]]
package.path = back
end
wait (1)
local state, toggle = GetKeyState(0x90)
local stateC = GetKeyState(0x43)
local state5 = GetKeyState(0x35)
local stateV = GetKeyState(0x56)
local state1 = GetKeyState(0x31)
local stateZ = GetKeyState(0x5A)
local stateR = GetKeyState(0x52)
local state3 = GetKeyState(0x33)
local stateB = GetKeyState(0x42)
local state2 = GetKeyState(0x32)
local stateF = GetKeyState(0x46)
local stateX = GetKeyState(0x58)
local stateH = GetKeyState(0x48)
local stateG = GetKeyState(0x47)
local stateM = GetKeyState(0xC0)
local state4 = GetKeyState(0x34)
local stateT = GetKeyState(0x54)
if  toggle and stateC then
    wait (1)
    send217 ("g")
else
    if  toggle and stateC then
        wait (1)
        send217 ("u")
    else
        if  toggle and state5 then
            wait (1)
            end
            end
            end

Что-то в таком виде хотелось бы иметь + модификаторы, которые бы работали как отдельно так и в сочетаниях

конечно безусловно я могу написать замену клавиш через этот скрипт. Но тут встаёт вопрос с модификаторами и их сочетаниями, которых великое множество, даже в том же AHK у меня не получается отделить клавишу с зажатым модификатором от модификатора и модификатора с другой клавишей и он просто не работает, возможно там нужны команды посложнее ( :: ) а писать каждую клавишу / если - то /
чего на незнакомом языке вообще делать не хочется
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


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

 

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