MacroEx — запуск макросов нетрадиционными способами

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Есть полезнейшая возможность в MacroLib — запуск макросов удержанием, двойным нажатием, и др.
Хорошо бы подобное и в родные макросы (тикет на мантисе есть).

А пока попробуем приблизится к решению задачи имеющимися средствами.

Предлагаю скрипт MacroEx, расширяющий возможности запуска макросов следующим образом:
  1. В имени клавиши через двоеточие теперь можно указывать дополнительные модификаторы Hold и Double:
    • key:Double — макрос будет выполнен при двукратном нажатии клавиши (в течении 300 мс, не отпуская клавиши-модификаторы)
    • key:Hold — макрос будет выполнен при удержании (>300 мс)
      Пример:
  2. Поддерживаются последовательности из двух нажатий, перечисленные через "-":
    • key-key2 — макрос будет выполнен при нажатии последовательности клавиш.
      Последовательность следует нажимать так: .
      Если вторая клавиша последовательности в течении секунды не будет нажата, то появится подсказка: из описаний возможных макросов.
      Пример:
    На один и тот же key можно назначить произвольное число макросов, конфликты разрешаются по правилам, принятым в LuaMacro.
    Макросы с модификаторами не лишают указанную комбинацию исходного значения: короткое нажатие выполнит исходное действие (или макрос, если назначен).
Ограничения:
  • В качестве key поддерживаются только комбинации клавиш с модификаторами Ctrl/Alt/Shift.
Установка: достаточно расположить прилагаемый macroEx.lua где-либо в scripts.
Attachments
MacroEx-3.2.1.7z
(4.9 KiB) Downloaded 59 times
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

Latest post of the previous page:

citRiks wrote: Mon 22 Feb, 2021 17:36 да, это тоже хорошо бы
Вот и займитесь, а пока даже не о чем говорить (никакой задачи не сформулировано).
https://t.me/FarManager — Telegram чат
aflexus
Posts: 74
Joined: Sat 12 Mar, 2011 16:57
Has thanked: 23 times
Been thanked: 1 time

MacroEx — запуск макросов нетрадиционными способами

Post by aflexus »

John Doe, замечательный макрос, благодарю! Но зачем он перехватывает комбинации вроде LCtrlF4, LCtrlF8, LCtrlF12 и пр.? У мне на них повешаны функции, а тут с использованием вашего скрипта, они отваливаются.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

aflexus wrote: Fri 19 Mar, 2021 14:36 Но зачем он перехватывает комбинации вроде LCtrlF4, LCtrlF8, LCtrlF12
Поясните что значит перехватывает.
Что показывает макробраузер?
https://t.me/FarManager — Telegram чат
aflexus
Posts: 74
Joined: Sat 12 Mar, 2011 16:57
Has thanked: 23 times
Been thanked: 1 time

MacroEx — запуск макросов нетрадиционными способами

Post by aflexus »

John Doe, к примеру, если раньше по LCtrlF4 включалась сортировка по расширению в панелях, то теперь в левом верхнем углу выскакивает сообщение "anassigned".
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

'Перехватывает' он их для выполнения собственных функций.
LCtrlF4 например потому что у вас есть какие-то комбинации с его участием (на скрине не видно).

Однако мешать родным функциям это не должно.
Возможно вы удерживает кнопки дольше чем надо, попробуйте коротко.
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by buniak_a_h »

aflexus, я, кстати, нашёл в скрипте MultiPanel макрос, повешенный на LCtrlF4:Hold ([MultiPanel] restore prev. panel). Может, просто после установки макроса MacroEx "выстрелили" те макросы, у которых были "модификаторы" :Hold и :Double?
Last edited by buniak_a_h on Fri 19 Mar, 2021 22:11, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

aflexus wrote: Fri 19 Mar, 2021 19:23 в левом верхнем углу выскакивает сообщение "anassigned".
Это происходит если после нажатия продолжать удерживать модификатор Ctrl.
В начале скрипта есть опции, и значение Delay = 300, попробуйте увеличить до 500-700.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

MacroEx — запуск макросов нетрадиционными способами

Post by citRiks »

John Doe wrote: Sat 20 Mar, 2021 11:36 значение Delay = 300, попробуйте увеличить до 500-700.
да, кажется это то что исправило ситуацию, у меня тоже удлиненный до 500
aflexus
Posts: 74
Joined: Sat 12 Mar, 2011 16:57
Has thanked: 23 times
Been thanked: 1 time

MacroEx — запуск макросов нетрадиционными способами

Post by aflexus »

John Doe, Да, благодарю, увеличение Delay немного помогло. К сожалению, приходится отпускать Ctrl, чтобы отработало обычное сочетание.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

MacroEx — запуск макросов нетрадиционными способами

Post by citRiks »

John Doe wrote: Sun 03 Jan, 2021 15:53 Планов конкретных нет. О последовательностях из более чем 2х нажатий я когда-то и сам думал. Практического смысла нет, хотя и несложно. Впрочем как несложно, на самом деле как всегда захочется сделать красиво, потянет за собой рефакторинг, и конца этому не будет))
А я хочу транслитератор например сделать, чтобы было так:
"S", "C", "H" ==>> "Щ"
Будет в следующей версии варианта MacroEx от дедушки Xer0X-a:
viewtopic.php?f=15&t=12459
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

MacroEx — запуск макросов нетрадиционными способами

Post by citRiks »

Code: Select all

local combo = regex.new("^((?:[rl]?ctrl)?(?:[rl]?alt)?(?:shift)?)((?:shift)|(?:alt))$","i")
local function tryComboMod(key)
  local mod,key = combo:match(key)
  --far.Show(mod,key)
  if mod then
    local m = far.NameToInputRecord(mod.."a")
    local k = far.NameToInputRecord(key)
    if m and k then
      return {
        ControlKeyState=m.ControlKeyState,
        VirtualKeyCode=k.VirtualKeyCode,
      }
    end
  end
end
-- USAGE:
local r = far.NameToInputRecord(AKey) or tryComboMod(AKey)
John Doe,
Что-то не понимаю зачем эта функция
в частности непонятно что это:
((?:[rl]?ctrl)?(?:[rl]?alt)?(?:shift)?)((?:shift)|(?:alt))
чтобы допустить существование CtrAltShiftAlt например?
Откуда возьмется CtrAltShiftAlt?
Другая догадка, что это нужно для возможности быть чему нибудь такому как CtrAltBlahBlahBlah, CtrAltSomething, для несуществующих в реальности кнопочек BlahBlahBlah, Something
прошу разьяснений если можно.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

citRiks wrote: Fri 25 Jun, 2021 08:32 Что-то не понимаю зачем эта функция
Ctrl+Shift
LAlt+Ralt
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

MacroEx — запуск макросов нетрадиционными способами

Post by citRiks »

John Doe wrote: Fri 25 Jun, 2021 08:55 Ctrl+Shift
LAlt+Ralt
типа, чтобы были возможны "CtrlShift:Double" и "LAltRAlt:Double", или как?
ваши плюсики смущают, вроде в MacroEx синтаксисе задания кнопконажатия вроде не используется +, кроме обычного использования
?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

MacroEx — запуск макросов нетрадиционными способами

Post by John Doe »

citRiks wrote: Fri 25 Jun, 2021 10:44или как?
Одинарные нажатия.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

MacroEx — запуск макросов нетрадиционными способами

Post by citRiks »

John Doe wrote: Fri 25 Jun, 2021 12:03Одинарные нажатия.
не могли бы вы привести примеры того использования, как простые и посложнее?
перечитал всю тему, не нашел примеров для этого случая использования
Post Reply

Return to “Полезные макросы и скрипты”