Code: Select all
local NumLock,get = 0,-1 -- опции индицирования состояния NumLock (заданы для всех нижележащих макросов)
Macro {
description="tes&t шорткатов, состоящих из клавиш-цифр NumPad`а с модификатором Shift (sToLp) Shift ShiftNum[0-9]";
area="Shell"; key="/(Shift)|(ShiftNum[0-9])|(ShiftClear)/";
id="ACED3A46-A101-487E-A45F-C40BEF980387";
action=function()
far.Message("\nДля тестирования шортката нажмите одновременно\nShift и клавишу-цифру с NumPad`а\n\n... ","Внимание!","")
flck=mf.flock(NumLock,get) if flck==0 then -- если NumLock погашен, то :
local resw=mf.waitkey() mf.msgbox("При погашенном NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,0) mf.msgbox("При погашенном NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
if resa=="Shift" then
mf.msgbox("Реально была нажата клавиша:",resa,0x00010000) exit()
end
mf.msgbox("Реально было нажато клавишесочетание:",resa,0x00010000)
exit() end -- конец блока тестирования шортката при погашенном NumLock
-- а когда NumLock горит, то waitkey() при нажатии клавиш-цифр NunPad`а в сочетании с модификаторами, среди которых присутствует Shift,
-- получает от системы как бы два нажатия, и от этого создаётся впечатление, будто бы он после активации не ждёт нажатия,
-- а срабатывает сразу на ключ активации:
local resw=mf.waitkey() mf.msgbox("При горящем NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,1) mf.msgbox("При горящем NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
if resw==resa then
mf.msgbox("Реально была нажата клавиша:",resa,0x00010000) exit()
end
mf.msgbox("Реально было нажато клавишесочетание:",resa..resw,0x00010000)
end;
}
Macro {
description="tes&t шорткатов, состоящих из клавиш-цифр NumPad`а с модификаторами CtrlShift (sToLp) CtrlShift CtrlShiftNum[0-9]";
area="Shell"; key="/([LR]CtrlShift)|([LR]CtrlShiftNum[0-9])|([LR]CtrlShiftClear)/";
id="9A09D1A6-E6D7-4D92-B903-39AECCC33ECC";
action=function()
far.Message("\nДля тестирования шортката нажмите одновременно\nShift и клавишу-цифру с NumPad`а\n\n... ","Внимание!","")
flck=mf.flock(NumLock,get) if flck==0 then -- если NumLock погашен, то :
local resw=mf.waitkey() mf.msgbox("При погашенном NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,0) mf.msgbox("При погашенном NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
if resa=="Shift" then
mf.msgbox("Реально была нажата клавиша:",resa,0x00010000) exit()
end
mf.msgbox("Реально было нажато клавишесочетание:",resa,0x00010000)
exit() end -- конец блока тестирования шортката при погашенном NumLock
-- а когда NumLock горит, то waitkey() при нажатии клавиш-цифр NunPad`а в сочетании с модификаторами, среди которых присутствует Shift,
-- получает от системы как бы два нажатия, и от этого создаётся впечатление, будто бы он после активации не ждёт нажатия,
-- а срабатывает сразу на ключ активации:
local resw=mf.waitkey() mf.msgbox("При горящем NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,1) mf.msgbox("При горящем NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
local rbnd=mf.replace(resw,"Ctrl","CtrlShift")
if resw==resa then
mf.msgbox("Реально была нажата клавиша:",resa,0x00010000) exit()
end
mf.msgbox("Реально было нажато клавишесочетание:",rbnd,0x00010000)
end;
}
Macro {
description="tes&t шорткатов, состоящих из клавиш-цифр NumPad`а с модификаторами AltShift (sToLp) AltShift AltShiftNum[0-9]";
area="Shell"; key="/([LR]AltShift)|([LR]AltShiftNum[0-9])|([LR]AltShiftClear)/";
id="284B3B85-AEE0-4A87-B191-0E07ACC92917";
action=function()
far.Message("\nДля тестирования шортката нажмите одновременно\nShift и клавишу-цифру с NumPad`а\n\n... ","Внимание!","")
flck=mf.flock(NumLock,get) if flck==0 then -- если NumLock погашен, то :
local resw=mf.waitkey() mf.msgbox("При погашенном NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,0) mf.msgbox("При погашенном NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
if resa=="Shift" then
mf.msgbox("Реально была нажата клавиша:",resa,0x00010000) exit()
end
mf.msgbox("Реально было нажато клавишесочетание:",resa,0x00010000)
exit() end -- конец блока тестирования шортката при погашенном NumLock
-- а когда NumLock горит, то waitkey() при нажатии клавиш-цифр NunPad`а в сочетании с модификаторами, среди которых присутствует Shift,
-- получает от системы как бы два нажатия, и от этого создаётся впечатление, будто бы он после активации не ждёт нажатия,
-- а срабатывает сразу на ключ активации:
local resw=mf.waitkey() mf.msgbox("При горящем NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,1) mf.msgbox("При горящем NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
-- Keys('AKey')
mf.msgbox("При горящем NumLock AltShiftNum[0-9]-ключи не опознаются макросом","",0x00010000)
end;
}
Macro {
description="tes&t шорткатов, состоящих из клавиш-цифр NumPad`а с модификаторами CtrlAltShift (sToLp) CtrlAltShift CtrlAltShiftNum[0-9]";
area="Shell"; key="/([LR]Ctrl[LR]AltShift)|([LR]Ctrl[LR]AltShiftNum[0-9])|([LR]Ctrl[LR]AltShiftClear)/";
id="1B9DDAE2-493A-463F-B763-F3FD4465A36B";
action=function()
far.Message("\nДля тестирования шортката нажмите одновременно\nShift и клавишу-цифру с NumPad`а\n\n... ","Внимание!","")
flck=mf.flock(NumLock,get) if flck==0 then -- если NumLock погашен, то :
local resw=mf.waitkey() mf.msgbox("При погашенном NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,0) mf.msgbox("При погашенном NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
if resa=="Shift" then
mf.msgbox("Реально была нажата клавиша:",resa,0x00010000) exit()
end
mf.msgbox("Реально было нажато клавишесочетание:",resa,0x00010000)
exit() end -- конец блока тестирования шортката при погашенном NumLock
-- а когда NumLock горит, то waitkey() при нажатии клавиш-цифр NunPad`а в сочетании с модификаторами, среди которых присутствует Shift,
-- получает от системы как бы два нажатия, и от этого создаётся впечатление, будто бы он после активации не ждёт нажатия,
-- а срабатывает сразу на ключ активации:
local resw=mf.waitkey() mf.msgbox("При горящем NumLock waitkey() опознаёт ключ как:",resw,0x00010000)
local resa=akey(1,1) mf.msgbox("При горящем NumLock akey(1,0) опознаёт ключ как:",resa,0x00010000)
-- CtrlAltShift3 и CtrlAltShift9 при выключённом NumLock почему-то не опознают цифры
local rbnd=mf.replace(resw,"Alt","AltShift")
if resw==resa then
mf.msgbox("Реально была нажата клавиша:",resa,0x00010000) exit()
end
mf.msgbox("Реально было нажато клавишесочетание:",rbnd,0x00010000)
end;
}