Пишу плагин на lua через LuaMacro, упёрся в проблему.
Можно ли получить состояние переключателя CapsLock через LuaFar API ? Поскольку плагин, то flock уже не доступен в этом контексте, а при обработке клавиатурных событий флаг CAPSLOCK_ON не сохраняется в InputRecord.ControlKeyState (баг??).
Плагин на LuaMacro. Как получить состояние Capslock?
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: Плагин на LuaMacro. Как получить состояние Capslock?
Вроде такой функции нет.Acerbic wrote:Можно ли получить состояние переключателя CapsLock через LuaFar API ?
Можно извратиться: послать макрос (far.MacroPost), который вызовет flock и передаст результат вашему плагину посредством Plugin.Call.Acerbic wrote:Поскольку плагин, то flock уже не доступен в этом контексте
Смотря где. Функция export.ProcessEditorInput точно получает состояние CAPSLOCK. Возможно и export.ProcessConsoleInput (не проверял).Acerbic wrote:а при обработке клавиатурных событий флаг CAPSLOCK_ON не сохраняется в InputRecord.ControlKeyState (баг??).
А вот в диалоговой процедуре это состояние вроде бы не приходит. Можно расценивать это как баг или как недоделку. Для этого есть Мантис.
Ну и если вы готовы ограничить ваш плагин использованием только с LuaJIT, то через FFI можно вызвать любую функцию Windows, не дожидаясь милости от Фара или Луафара.
Re: Плагин на LuaMacro. Как получить состояние Capslock?
Можно извратиться: послать макрос (far.MacroPost), который вызовет flock и передаст результат вашему плагину посредством Plugin.Call.
диалог. Мантиса боюсь почему-то, придётся регистрироваться.А вот в диалоговой процедуре это состояние вроде бы не приходит. Можно расценивать это как баг или как недоделку. Для этого есть Мантис.
Спасибо. Пойду теперь гуглить, что такое LuaJIT.Ну и если вы готовы ограничить ваш плагин использованием только с LuaJIT, то через FFI можно вызвать любую функцию Windows, не дожидаясь милости от Фара или Луафара.
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: Плагин на LuaMacro. Как получить состояние Capslock?
Мантиса бояться не надо - там всё элементарно.
LuaJIT 2.0.1 поставляется с Фаром, начиная с 18 мая, вместо "обычного" Lua. Навряд ли это изменится, так что можно рассчитывать на его присутствие.
LuaJIT 2.0.1 поставляется с Фаром, начиная с 18 мая, вместо "обычного" Lua. Навряд ли это изменится, так что можно рассчитывать на его присутствие.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Плагин на LuaMacro. Как получить состояние Capslock?
Code: Select all
shmuel 04.07.2016 17:35:59 +0200 - build 578
1. LuaFAR: добавлена функция win.GetKeyState.
Уже доделали, всё приходит.