Plugin.Unload

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Plugin.Unload

Post by Wave »

У меня почему-то не работает Plugin.Unload

Например, создаю пункт меню «Переключить плагины»

Code: Select all

macro:post
FARHOME = mf.env("FARHOME");
Plugin.Unload(FARHOME .. "\\Plugins\Multimedia\\pictureview\\0PictureView.dll");
Plugin.Load(FARHOME .. "\\Plugins.off\\Multimedia\\ImageView\\ImageView.dll");
Keys("CtrlPgDn CtrlR");
(разбивка по строкам для удобства)

Плагин, что должен загрузиться, загружается (да вообще с загрузкой никогда не испытывал проблем), а выгружаемый — не выгружается.

Или же в ассоциации файлов на dll вешаю такие ассоциации:

На Enter
macro:post Plugin.Load("!.!");

На CtrlPgDn
macro:post Plugin.Unload ("!.!");

Загрузка работает, выгрузка нет. Причём, не выгружаются ни те, что при загрузке фара, ни те, что перед этим загружались по энтеру. Кстати, в двойке эти же ассоциации у меня грузились-выгружались по путям !\!.! но в тройке это не сработало, пришлось на !.! поменять.

P.s. 3232 x86.
Пользуюсь ФАРом больше 20 лет © собирательный.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Plugin.Unload

Post by Shmuel »

У меня Plugin.Unload работает (по крайней мере, исчезает его пункт из меню плагинов).
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Plugin.Unload

Post by Wave »

Пробовал без макросов, пробовал вообще удалить каталог профиля. Перепроверил, что LuaMacro и библиотеки Луа актуальные. Поставил ФАР3 с нуля из архива с полностью дефолтным набором. Напоследок откатился на stable. Один и тот же результат — плагины остаются в меню F11 и работают.

Эксперименты проводил через ком-строку macro:post.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Plugin.Unload

Post by John Doe »

Wave wrote:Кстати, в двойке эти же ассоциации у меня грузились-выгружались по путям !\!.! но в тройке это не сработало, пришлось на !.! поменять.
Врядли это в двойке работало, там вообще нет такой функции :-)
Всё проще: unload:"!\!.!"

А макросом было бы так: lm:post Plugin.Unload[[!\!.!]]
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Plugin.Unload

Post by Shmuel »

Wave
А зачем

Code: Select all

Keys("CtrlPgDn CtrlR")
??
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Plugin.Unload

Post by Wave »

John Doe wrote:Врядли это в двойке работало, там вообще нет такой функции :-)
Не совсем так. В двойке у меня исторически прижившись стоит плагин Plug Menu и в ассоциациях файлов стоит
PlugUnload:!\!.!
и
PlugLoad:!\!.!

работает.
Но только что перепроверил, точно так же работает
macro:post Plugin.Load("!.!");
и
macro:post Plugin.Unload ("!.!");

(!\!.! оказывается тоже не воспринимает, но !.! работает. Есть функция или нет, может, дело в том, что у меня bis25 сборка от Максимуса, если не ошибаюсь.)
John Doe wrote:Всё проще: unload:"!\!.!"

А макросом было бы так: lm:post Plugin.Unload[[!\!.!]]
Оба варианта работают, спасибо. А вообще — очередной затык перехода на тройку. Самый простой путь не нашёл, не догадался о нём. Сделал как понимал, тем более, что загрузка-то работает как надо. Но суммарно потратил на такую мелочь считая отписки на форуме — полчаса или больше.
Shmuel wrote:Wave
А зачем

Code: Select all

Keys("CtrlPgDn CtrlR")
??
Ну это мои личные паттерны использования. Самый что ни на есть черновой вариант. Т.е. этот пункт меню я преимущественно собирался вызывать сразу стоя на картинках, т.е. чтобы сразу картинка вторым плагином показалась. Ну а поскольку плуг с конэму не дружит, там надо после показа картинки её перерисовать. Правда, я забыл, что CtrlR в этом плуге не перерисовывает, а поворачивает, но говорю же, это был черновик. Дальше это поменяется на Keys("F11"); Menu.Select("Image view"); и далее по тексту. Но это шлифовка, которая в процессе использования ФАРа происходит.

Upd. А перерисовываться по макросу всё равно не желает. Или не успевает. Приходится вручную после вызова жать ноль или тильду. Или пробел-бекспейс.

Upd2. Нет, что-то с вызовом макроса выгрузки из меню пользователя неладно. Разбираюсь.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Plugin.Unload

Post by John Doe »

Wave wrote:Оба варианта работают, спасибо.
Оба нормально выгружают?
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Plugin.Unload

Post by Wave »

Нормально. Нашёл затык с меню F2 — пропустил удвоение слеша в одном месте.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Plugin.Unload

Post by John Doe »

В [[можно\не\удваивать]]
А вообще список плагинов стоит хранить отдельно (и строить автоматически).
Тогда в командной строке не придётся указывать пути.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Plugin.Unload

Post by Wave »

FARHOME = mf.env("FARHOME"); Plugin.Unload(FARHOME .. "\\Plugins.Off\\...
А как отдельно — максимум чего соображу, это отдельный файл с константами. Только также не разбирался, как правильно их в объявлять. macroapi_manual.chm пока пробежался по верхам, а luafar_manual.chm потыкал палочкой и в испуге закрыл. Спасаюсь методом научного тыка, примерами и конвертером.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Plugin.Unload

Post by John Doe »

Почитайте что-нибудь о луа, станет проще
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Plugin.Unload

Post by Wave »

Блин, я хренею, сколько слешей после экранирования получается. Добился работающего макроса в ассоциациях файлов примерно таким образом:
lm:post TI = mf.env("FARHOME") .. "\\Plugins.off\\Internet\\TorrentInfo\\TorrentInfo.dll"; TI = mf.replace(TI, "\\", "\\\\"); Plugin.Load(TI); Keys("F11"); Menu.Select("Torrent info"); Keys("Enter");

Конечно, можно было бы не выпендриваться и просто положить плагин в каталог с работающими плугами, но мы не ищем лёгких путей :)

P.s. Зачем это в принципе надо — например, я не хочу постоянно грузить обсервер как лишний и довольно много хватающий архивный плагин, но на некоторых файлах вызывать именно его. Торрент инфо — это так, мелочёвка и обкатка принципов была.
Пользуюсь ФАРом больше 20 лет © собирательный.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Plugin.Unload

Post by Shmuel »

Wave wrote:TI = mf.replace(TI, "\\", "\\\\");
Это лишнее.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Plugin.Unload

Post by Wave »

Чорт, мистика. С утра без этого не работало, сейчас работает.
Пользуюсь ФАРом больше 20 лет © собирательный.
KonovaPE
Posts: 7
Joined: Wed 22 Oct, 2014 13:43

Можно ли из скрипта загрузить(выгрузить) плагин

Post by KonovaPE »

Ткните носом.
Хочется загружать (выгружать) плагины по мере надобности
Post Reply

Return to “Нужна помощь”