FastMacro – Быстрый поиск доступных макросов

Здесь обсуждается всё, что касается макросов.
LAT
Posts: 187
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Tue 20 Nov, 2018 21:43

По нажатию клавиш (или их комбинаций) в списке скриптов будут оставаться только те, у которых эта клавиша(или комбинация) присутствует в ключе

Запуск: CtrlAltM
Настройки: переменная gConfig в начале скрипта.
Клавиши, не задействованные в gConfig:
Enter – запуск макроса
Esc – отмена последнего фильтра для ключа или отмена поиска
Up,Down – перемещение по списку
Остальные клавиши (или их комбинации) – установка/сброс фильтра для ключа

Нюансы:
1. Если при запуске скрипта вывыдятся ненужные меню или диалоги, нужно установить gConfig.precheck в false
2. Может использоваться совместно со SmartMenuFilter (viewtopic.php?f=60&t=8463).
3. Для быстрого листания длинного списка можно использовать макрос viewtopic.php?p=151729#p151729 (автор sToLp)

fastmacro20.lua.7z
(3.77 KiB) Downloaded 13 times
Last edited by LAT on Sun 09 Dec, 2018 16:42, edited 8 times in total.

LAT
Posts: 187
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Fri 07 Dec, 2018 17:24

Latest post of the previous page:

sToLp wrote:
Thu 06 Dec, 2018 23:17
...Я, например, насчитал в своей тестовой сборке макросов 82 макроса с невалидными ключами. А сам список всех макросов занимает несколько страниц. Вот поэтому их и желательно вычленить...
Отфильтровать макросы, у которых в качестве ключа назначена пустая строка, вроде бы не сложно. А вот если в качестве ключа указан какой-нибудь мусор, даже не представляю разумного способа определить это... mf.key не дружит с регэкспами, плюс плохо реагирует на LCtrl, LAlt, может, еще на что-то.

LAT
Posts: 187
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Fri 07 Dec, 2018 18:15

v 19.
1. клавиша запуска изменена на CtrlAltM (предыдущая совпадала со стандартной комбинацией восстановления пометки файлов)
2. + возможность фильтрации для получения списка скриптов, которым не назначены клавиши
3. + новые поля для настроек в gConfig
4. + немного динамики в формирование информационной строки для меню
5. + возможность открытия скриптов в редакторе. Переход в редактор изучался по коду LuaManager (автор IgorZ). Выполняется по долгому нажатию Alt+F4 (настраивается в gConfig)
6. + возможность работы с клавиатурными макросами (без action, но с code)
7. проверка условий запуска скриптов обернута в pcall
8. в связи с этим убрал танцы с gConfig.precheck
9. мелкие правки

User avatar
sToLp
Posts: 924
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by sToLp » Fri 07 Dec, 2018 22:27

LAT wrote:
Fri 07 Dec, 2018 16:59
ЗЗЫ. Есть ли у такого приема преимущество перед использованием waitkey?
По-видимому, дело привычки. Потому что, на мой взгляд, метод через waitkey более дёрганый что-ли, с непредсказуемыми скачками, а по двойному нажатию просто дублирует привычные PgUp и PgDn. Но, повторюсь, возможно, что дело и в привычке.

User avatar
sToLp
Posts: 924
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by sToLp » Fri 07 Dec, 2018 22:50

LAT wrote:
Fri 07 Dec, 2018 17:24
если в качестве ключа указан какой-нибудь мусор, даже не представляю разумного способа определить это
Чаще всего, как раз, не мусор, а целенаправленные подходящие к ситуации названия ключей типа: "таймерКода", "широкаяПанель", "гуиды", "префиксы" и т.п. М.б. имеет смысл посмотреть с этой позиции и далее у John Doe. Но там через готовый круто навороченный макробраузер. А в другой теме ещё IgorZ намеревается подобное сделать, но тоже через свой мощный макробраузер.

User avatar
John Doe
Бюрократ
Posts: 12075
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 28 times
Been thanked: 152 times

FastMacro – Быстрый поиск доступных макросов

Post by John Doe » Sat 08 Dec, 2018 08:45

LAT wrote:
Fri 07 Dec, 2018 16:59
Насколько я понимаю, скрипт реагирует не только на двойное нажатие одной и той же клавиши (вверх или вниз), но и разных (вверх-вниз или вниз-вверх).
Да. Но можно исправить.
LAT wrote:
Fri 07 Dec, 2018 16:59
Есть ли у такого приема преимущество перед использованием waitkey?
В приведённом коде waitkey проглотит любую клавишу, нажатую в пределах maxDelay.
Можно исправить.
LAT wrote:
Fri 07 Dec, 2018 17:24
mf.key не дружит с регэкспами
Регэкспы в данном случае нас не интересуют, и их легко отсеять.
LAT wrote:
Fri 07 Dec, 2018 17:24
плохо реагирует на LCtrl, LAlt
Поправимо.

LAT
Posts: 187
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Sun 09 Dec, 2018 16:38

v.20
Пришлось вернуть gConfig.precheck. Совсем забыл, что в condition() могут выводиться меню и диалоги :(. По умолчанию установлено в true, а если при запуске скрипта выводится что-то "левое", нужно установить в false.

User avatar
John Doe
Бюрократ
Posts: 12075
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 28 times
Been thanked: 152 times

FastMacro – Быстрый поиск доступных макросов

Post by John Doe » Mon 10 Dec, 2018 08:17

LAT wrote:
Sun 09 Dec, 2018 16:38
Совсем забыл, что в condition() могут выводиться меню и диалоги
Можно пример, где такое используется?

LAT
Posts: 187
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Mon 10 Dec, 2018 09:03

John Doe wrote:
Mon 10 Dec, 2018 08:17
LAT wrote:
Sun 09 Dec, 2018 16:38
Совсем забыл, что в condition() могут выводиться меню и диалоги
Можно пример, где такое используется?
viewtopic.php?p=105665#p105665 (скрипт Plugin.BackgroundCopy.lua), проблема описана у sToLp-а (viewtopic.php?p=151672#p151672, пункт 1)
UPD. Этот макрос можно исправить вставкой строчки 14: Keys("Esc"). Плюс такая проблема возникает только в том случае, если в меню плагинов нет строки Background copy, т.е. нет плагина, т.е. этот макрос не используется для работы :). И при попытке вызвать этот макрос по кнопкосочетанию CtrlShiftI, выскакивает экран с ошибкой "attempt to yield across C-call boundary". Но дело не в этом конкретном макросе, а в том, что такая ситуация возможна, и ее нужно как-то обрабатывать.
Last edited by LAT on Mon 10 Dec, 2018 09:10, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 12075
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 28 times
Been thanked: 152 times

FastMacro – Быстрый поиск доступных макросов

Post by John Doe » Mon 10 Dec, 2018 09:23

LAT wrote:
Mon 10 Dec, 2018 09:03
Этот макрос можно исправить
Насколько я понимаю, макрос тот следует исправить использованием Plugin.Exist.
LAT wrote:
Mon 10 Dec, 2018 09:03
Но дело не в этом конкретном макросе, а в том, что такая ситуация возможна, и ее нужно как-то обрабатывать.
Макрос же некорректный.
Разве он вообще может работать?

LAT
Posts: 187
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 8 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Mon 10 Dec, 2018 09:28

John Doe wrote:
Mon 10 Dec, 2018 09:23
Макрос же некорректный.
Разве он вообще может работать?
По-моему, вся его работа сводится к тому, чтобы выводить лишнее меню, когда запускается FastMacro :)

Post Reply

Return to “Обсуждение макросов”