Помогите составить аналог на 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 у меня не получается отделить клавишу с зажатым модификатором от модификатора и модификатора с другой клавишей и он просто не работает, возможно там нужны команды посложнее ( :: ) а писать каждую клавишу / если - то /
чего на незнакомом языке вообще делать не хочется