Очевидно что фар распознаёт эти нажатия:
lua:=mf.waitkey()
, а раз так, то вероятно несложно разрешить и назначать на них макросы.Или есть какие-то подводные камни?
lua:=mf.waitkey()
, а раз так, то вероятно несложно разрешить и назначать на них макросы.Я правильно понимаю, что вот это должно работать:
Code: Select all
Macro{
area="Common";
key="CtrlWin";
action=function() far.Message"CtrlWin" end;
}
В общем случае нежелательно, но для моих целей это значения не имеет (а мне надо и Win в чистом виде).
Win
используется как рядовая клавиша, а она явно напрашивается на роль клавиши-модификатора. Памятуя, например, нередко употребимое в системе WinR
и др.Да, модификатором было бы лучше, т.к. сразу бы добавилась целая куча доступных сочетаний.
(продолжение в теме http://forum.farmanager.com/viewtopic.php?f=15&t=10366)
Code: Select all
local function Down(key)
local vk = type(key)=="number" and key or far.NameToInputRecord(key).VirtualKeyCode
return function() return win.GetKeyState(vk) end
end
local LSHIFT = 0x000000a0
local RSHIFT = 0x000000a1
Macro { description="CtrlLShiftA";
area="Common"; key="CtrlShiftA";
condition=Down(LSHIFT);
action=function()
far.Message"LShift"
end
}
Macro { description="CtrlRShiftA";
area="Common"; key="CtrlShiftA";
condition=Down(RSHIFT);
action=function()
far.Message"RShift"
end
}
Macro {
area="Common"; key="Z";
condition=Down"LWin";
action=function()
far.Message"Win+Z"
end
}