Latest post of the previous page:
Max, а можно в следующей версии сделать такую опцию, чтобы когда назначаешь горячую клавишу (F4) на плагин в PlugMenu, автоматически такая же клавиша назначалась на тот же плаг и в нативном меню плагинов? Поможет макрописателям, например.PlugMenu — Расширенное меню плагинов
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: PlugMenu — Расширенное меню плагинов
В настоящее время это технически невозможно.
А макросы, кстати, сейчас не используют меню плагинов.
А макросы, кстати, сейчас не используют меню плагинов.
Re: PlugMenu — Расширенное меню плагинов
Нередко, всё же, удобнее бывает макросом или алиасом вызвать тот или иной плагин по-старинке, через PlugMenu, чем возиться с Plugin.Call и гуидами, особенно если надо сварганить макрос (или алиас) побыстрее.
В таких случаях применяю либо анси-плагин KeyIn-FAR-plugin/0.0.3 - он прекрасно работает через враппер:
либо утилиту nircmdc.exe:
В таких случаях применяю либо анси-плагин KeyIn-FAR-plugin/0.0.3 - он прекрасно работает через враппер:
Code: Select all
lm:post print("kbrd:F11") Keys("Enter") ...
Code: Select all
lm:post print("nircmdc.exe sendkey F11 press") Keys("Enter") ...
Re: PlugMenu — Расширенное меню плагинов
Можно, конечно, и нужно когда это уместно, но если требуется поскорее, то:
к примеру, в файле doskey.ini есть строка:
и чтобы назначить алиас вызова Emenu копируем её ниже и видоизменяем:
— создание нового алиаса заняло несколько секунд.
А с Plugin.Menu(...), в котором нужно указывать гуиды, как это будет?
к примеру, в файле doskey.ini есть строка:
Code: Select all
+=lm:post print("kbrd:F11 Shift=") Keys("Enter") i="вызов плагина Same Folder '+'";
и чтобы назначить алиас вызова Emenu копируем её ниже и видоизменяем:
Code: Select all
-=lm:post print("kbrd:F11 -") Keys("Enter") i="вызов плагина Emenu";
А с Plugin.Menu(...), в котором нужно указывать гуиды, как это будет?
Re: PlugMenu — Расширенное меню плагинов
Я использую этот плугин вместо стандардного плугин меню (через Common макрос для F11). Для чего вам еще нужно стандардное плугин меню?
Re: PlugMenu — Расширенное меню плагинов
xarx
Вышеприведённые алиасы как раз и расчитаны на то, что на "F11" навешен макрос, вызывающий Расширенное меню плагинов.
Шорткаты Расширенного меню не совпадают с шорткатами Стандартного меню пока их специально не синхронизируешь.
И поэтому через Keys("F11 +") может быть вызван совсем не тот плагин, который вызывается по шорткату "+" в Расширенном меню, как привык его пользователь.
А вот через "kbrd:F11 +" — тот. Потому что "kbrd:F11" эмулирует нажатие клавиши "F11", и таким образом вызывает макрос, назначенный на неё.
В отличие от функции Keys("F11"), которая вызывает команду, изначально назначенную в Фаре на "F11", а не макрос, навешеный поверх неё.
Вышеприведённые алиасы как раз и расчитаны на то, что на "F11" навешен макрос, вызывающий Расширенное меню плагинов.
Шорткаты Расширенного меню не совпадают с шорткатами Стандартного меню пока их специально не синхронизируешь.
И поэтому через Keys("F11 +") может быть вызван совсем не тот плагин, который вызывается по шорткату "+" в Расширенном меню, как привык его пользователь.
А вот через "kbrd:F11 +" — тот. Потому что "kbrd:F11" эмулирует нажатие клавиши "F11", и таким образом вызывает макрос, назначенный на неё.
В отличие от функции Keys("F11"), которая вызывает команду, изначально назначенную в Фаре на "F11", а не макрос, навешеный поверх неё.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: PlugMenu — Расширенное меню плагинов
Ерундой страдаете. Plugin.Menu(ID) - что может быть проще?
PlugMenu, кстати, для запуска плагина само постит этот макрос, т.к. другого способа вызова плагина нет.
PlugMenu, кстати, для запуска плагина само постит этот макрос, т.к. другого способа вызова плагина нет.
Re: PlugMenu — Расширенное меню плагинов
Например шорткат "+" намного проще чем ID "{61684143-9977-4E40-BBB2-79283AEBA1DD}". Особенно когда на другой машине ID того же самого плагина уже "{61684143-9977-4E40-BBB2-79283AE543FF}", что для плагинов, работающих через враппер, вовсе не редкость. И гораздо надёжнее дать совет выставить одинаковые шорткаты, чем идентификаторы. Про шорткаты хоть объяснить легче.Plugin.Menu(ID) - что может быть проще?
Но в целом и в перспективе, Вы, разумеется, правы.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: PlugMenu — Расширенное меню плагинов
Добавь функции:
И вызывай плагин по имени:
Plugin.Open("FarFTP")
И вызывай плагин по имени:
Plugin.Open("FarFTP")
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: PlugMenu — Расширенное меню плагинов
Замечу, что Plugin.idByName(Name) отсюда, а роль Plugin.Open может точно так же выполнять универсальная функция Plugin.require
Code: Select all
FarFTP = Plugin.require("FarFTP")
...
FarFTP.Menu()
Re: PlugMenu — Расширенное меню плагинов
В отношении плагинов, запускаемых через враппер, команда "Plugin.Open(Name)" не подходит (поскольку все они эксплуатируют одно "имя" - "Loader"), и вышеозначенные танцы с бубном (то бишь с "kbrd:" или "nircmdc.exe sendkey ..." и шорткатами) вокруг них до их актуализации не отменяет. — см. ниже.
Эта команда действительно гораздо удобнее и чем "Plugin.Menu(ID)", и чем шорткаты!
Поэтому полагаю, что "Plugin.Open(NameOrID,ItemID)" целесообразно было бы включить в Far (LuaMacro).
Max Rusov
John Doe
Благодарю вас за подсказку и пояснение! Это стимулирует к освоению Луа.
Эта команда действительно гораздо удобнее и чем "Plugin.Menu(ID)", и чем шорткаты!
Поэтому полагаю, что "Plugin.Open(NameOrID,ItemID)" целесообразно было бы включить в Far (LuaMacro).
Max Rusov
John Doe
Благодарю вас за подсказку и пояснение! Это стимулирует к освоению Луа.
Last edited by sToLp on Thu 11 Apr, 2013 18:25, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: PlugMenu — Расширенное меню плагинов
Это какой такой враппер?sToLp wrote:поскольку все они эксплуатируют одно "имя" - "Loader"
В том, что мне известно, можно и переименовать dll, и явно присвоить guid
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: PlugMenu — Расширенное меню плагинов
Вы сначала попробуйте.sToLp wrote:В отношении плагинов, запускаемых через враппер, команда "Plugin.Open(Name)" не подходит (поскольку все они эксплуатируют одно "имя" - "Loader")
Re: PlugMenu — Расширенное меню плагинов
Дело в том, что ещё со времён Far2 я использовал враппер простейшим образом: кидал в папку с плагином "Loader.dll", копировал в неё из другой папки "Loader.ini" а в нём в строке "PluginFile=..." напрямую указывал имя плагинной dll`ки и в соответствующих строках — свежесгенрированные гуиды. И всё нормально работало через шорткаты. Такой метод был удобен тем, что при очередном обновлении враппера нужно было лишь обновить "Far3Wrap.dll" в корне Фара и в соответствующих папках все "Loader.dll`ки", не переименовывая ни "родные" dll`ки плагинов, ни dll`ки-лодеры. И я уже почти забыл, что можно сделать и по-другому.
Теперь же, с вашей подачи, сделал так: "родной" файл плагина "UCharMap.dll" переименовал в "UCharMap.dl_", а "Loader.dll" — в "UCharMap3.dll" и создал пустой "UCharMap3.ini". А затем удалил "plugincache32.db" и перезапустил Фар. И так со всеми плагинами, работающими через враппер.
Так "Plugin.Open(Name)" заработала с плагинами, запускаемыми и через враппер. То есть практически с любыми плагинами.
И тогда тем более эту удобнейшую своей наглядностью функцию желательно сделать не факультативной, а общедоступной!
Теперь же, с вашей подачи, сделал так: "родной" файл плагина "UCharMap.dll" переименовал в "UCharMap.dl_", а "Loader.dll" — в "UCharMap3.dll" и создал пустой "UCharMap3.ini". А затем удалил "plugincache32.db" и перезапустил Фар. И так со всеми плагинами, работающими через враппер.
Так "Plugin.Open(Name)" заработала с плагинами, запускаемыми и через враппер. То есть практически с любыми плагинами.
И тогда тем более эту удобнейшую своей наглядностью функцию желательно сделать не факультативной, а общедоступной!
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times